@turmind/halo 2.2.4 → 2.2.5

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.
@@ -92,7 +92,7 @@ params:
92
92
  secrets: []
93
93
  ```
94
94
 
95
- Built-in skills declare theirs the same way — today `extension`, with plain `hub_base` (the https base URL holding each hub extension's `<id>/update.json`, read by `/extension install <id>` and the admin's update check; point it at a mirror; empty = the GitHub raw `extensions/` directory of `hub_repo`) and `hub_repo` (the hub `/extension models` pulls release zips from, and where the default `hub_base` comes from; empty = turmind/halo-hub) params, and `web-search`, with plain `fast_region` / `deep_region` params (AWS regions for its two Bedrock gears; empty = us-east-1 fast, us-west-2 deep / us-east-1 for sol). `halo setup` asks only for built-in skills' `secret: true` params; plain params are configured in Settings → Skills only.
95
+ Built-in skills declare theirs the same way — today `extension`, with plain `hub_base` (the https base URL holding each hub extension's `<id>/update.json`, read by `/extension install <id>` and the admin's update check; point it at a mirror; empty = the GitHub raw `extensions/` directory of `hub_repo`) and `hub_repo` (the hub `/extension models` and the Sync latest models button pull release zips from, and where the default `hub_base` comes from; empty = turmind/halo-hub) params, and `web-search`, with plain `fast_region` / `deep_region` params (AWS regions for its two Bedrock gears; empty = us-east-1 fast, us-west-2 deep / us-east-1 for sol). `halo setup` asks only for built-in skills' `secret: true` params; plain params are configured in Settings → Skills only.
96
96
 
97
97
  Global agents declare theirs the same way in `agents/<agent-id>/agent-config.yaml` (same `params:` / `secrets:` lists; shown under Settings → Agents).
98
98
 
@@ -235,6 +235,29 @@ A malicious skill that tries `curl -H "Bearer {{aws-bedrock-claude-invoke.secret
235
235
 
236
236
  Groups top to bottom: **System** (General · A2A remotes — only while a2a-remotes.yaml has a bearer remote · Security · Extensions, each with a leading icon), **Extension settings**, **Model providers**, **Agents**, **Skills**, and **Orphans** when there are any. Each group header is a quiet toggle (chevron + smaller muted label) that collapses its items; all groups start expanded, and the collapsed ones are remembered per browser (`localStorage` `halo_settings_navCollapsed`, collapsed ids only — so a group that appears later starts expanded).
237
237
 
238
+ ## Sync latest models
239
+
240
+ The **Model providers** group ends with a **Sync latest models** row (refresh icon, styled like the nav items, opens no page). One click has the server fetch the hub's newest `models-v*` release and install the provider yamls in it that are newer than the copy in effect — the same rules as `/extension models` ([design/storage.md → Model registry format](../design/storage.md#model-registry-format), API [dev/api.md → Model sync](../dev/api.md#canvas-preview-extensions)).
241
+
242
+ - **Running**: the row reads "Syncing…" with a spinning icon and is disabled until the request returns.
243
+ - **Confirm**: when an install would send requests to a URL the provider didn't use before (a new provider, a changed default endpoint / presets, an added model endpoint), nothing is written yet. A "Confirm endpoint changes" dialog lists each such provider with its endpoint change lines; **Cancel** (or a click outside) sends nothing more, **Install** re-checks the hub and writes.
244
+ - **Result**: a "Models synced (<release>)" dialog with the summary line and one row per provider yaml — installed / up to date / skipped / refused, plus the reason (e.g. "needs a newer halo").
245
+ - **Failure**: a "Model sync failed" dialog with the server's error text (rate-limited, no release, network…), not the raw HTTP status.
246
+ - **GitHub hubs only**: the hub is the extension skill's `hub_repo` (Settings → Skills → extension; empty = turmind/halo-hub). Requests are anonymous, 60 per hour per IP. For a Gitea / Forgejo / GitLab hub the server refuses with a pointer to `/extension models` in a chat, which handles those.
247
+ - The provider list and model pickers refresh from the `models:changed` push — no reload, no polling. Existing agents keep the model / endpoint in their own `agent.yaml`.
248
+
249
+ ## Models browse (provider pages)
250
+
251
+ A model provider's page shows a **Models** section below its credential fields: a read-only view of the provider config in effect (the bundled or hub copy that wins by `revision`), so you can see which models are wired up and where each one can be called without opening the yaml. Nothing here is editable — an agent's model and endpoint are picked in the agent editor. The section header (chevron + "Models" + model count) starts expanded and collapses on click; the state isn't persisted. Shown at both global and workspace scope (the provider config is global). A provider whose yaml declares no `secrets:` has no Settings page, so no browse either (every bundled provider declares some).
252
+
253
+ - **Provider line**: runtime · revision · default model (`defaultModelId`, else the first model; shown by its display name), then a one-line read-only hint.
254
+ - **One card per model**, in yaml order:
255
+ - display name (else the id), with a "Default" tag on the default model; under it the model id in mono, click to copy (a check mark confirms);
256
+ - right side: "Context 272K (max 1M)" — `contextWindow`, plus `maxContextWindow` when it differs — and "Output 128K" (`maxOutputTokens`); hovering the context shows the compaction ratio ("Compacts at 90% of the context"). Sizes read as K / M; a power-of-two size reads binary (262144 → 256K, 1048576 → 1M);
257
+ - capability chips: Image / Video / Audio input (none of the three → "Text only"); Thinking with its effort values (`low / medium / high / xhigh / max`), or "Thinking budget 4K" for a budget-mode model, plus "· on by default" when thinking starts on; Cache with its TTL values (`5m / 1h`); Verbosity with its values. In a list with more than one value the default is bold in the accent color, and the chip's tooltip names it;
258
+ - endpoint chips (map-pin icon): where the model can be called — its own `endpoints:` list, else the provider's `endpointPresets`, with the provider's `defaultEndpoint` listed first when the presets leave it out. An AWS host carrying a region (`bedrock-runtime.<region>.amazonaws.com[.cn]`, `bedrock-mantle.<region>.api.aws`) shows as the region (`us-east-1`); any other URL as its host in mono (`api.deepseek.com`). URLs with the same label share one chip. The default endpoint's chip is highlighted; the tooltip lists the full URL(s).
259
+ - **Data**: `GET /api/agent-configs/models` (the merged registry the agent form also reads), fetched when Settings opens and again on every `models:changed` push (a hub sync or `/extension models`) or WS reconnect — no polling. The yaml is never shown raw.
260
+
238
261
  ## Extensions view and update notices
239
262
 
240
263
  **Settings → Extensions** (System group) lists the installed canvas preview extensions — on and off in one list sorted by id, plus refused directories as red rows — with **Install from zip** in the header. Each valid row offers: