Commit Graph
324 Commits
Author SHA1 Message Date
Rohit C Prasad 4578be6457 Merge remote-tracking branch 'origin/main' into feat/llamacpp-guided-setup 2026-10-26 12:28:24 -07:00
Rohit C Prasad 5ff7db1752 Merge remote-tracking branch 'origin/main' into feat/azure-openai-card
# Conflicts:
#	README.md
#	surfaces/gui/src/components/ManageTabs.tsx
2026-10-26 12:01:37 -07:00
Rohit C Prasad be78567c83 Screenshots of the custom provider box and the local server rows
Light and dark, for the PR and the docs.
2026-10-26 11:25:33 -07:00
Rohit C Prasad f791d7a927 llama.cpp setup: licence per model, verified downloads, 429 waits
Each suggested model names and links its licence before Download.
A finished file is checked against Hugging Face's sha256; no API, no check, and the card says so.
A 429 from Hugging Face is waited out as its headers ask, counted down on the card.
2026-10-26 11:24:36 -07:00
Rohit C Prasad 159a875c1e Azure OpenAI as its own provider card
Endpoint + key, normalised to the v1 base URL; key never shared with OpenAI.
Model ids are deployment names; Test probes the resource's /openai/v1/models.
2026-10-26 11:17:17 -07:00
Rohit C Prasad fc6ca8a703 Custom providers: permanent add box, named cards, fetch models from server
The box stays at the end of the API-keys group; saving makes a card titled by the user, prefix derived from the name.
A custom card lists its server's /models on request (a missing listing is a note, not a failure).
Re-saving a custom key now rebuilds its client; strings in en + zh.
2026-10-26 11:16:46 -07:00
Rohit C Prasad b849b53d27 Add Cerebras, Hugging Face, Cohere and SiliconFlow as compat providers
One verified tool-calling row each, with the window from the vendor's docs (2026-10-26).
SiliconFlow's endpoint help names the China mainland variant.
2026-10-26 11:10:57 -07:00
Rohit C Prasad db6e0af7eb Add Jan, Docker Model Runner and mlx-lm as local server providers
Same shape as llama.cpp/vLLM/LM Studio: address + optional key, models from the server.
Docker's /engines path is added when the user types the root; mlx-lm's help covers the port shared with llama.cpp.
Local-server checks now read LOCAL_SERVERS instead of a hand-kept tuple.
2026-10-26 11:10:29 -07:00
Mumit Khan e9777cbb1b Add custom OpenAI-compatible providers 2026-10-26 11:01:42 -07:00
Rohit C Prasad ff394b62aa Set up and run llama.cpp on a Mac from the llama.cpp page
Install with Homebrew, pick a model sized to the Mac (or one Ollama has), start it.
OpenWorker runs llama-server, downloads into llama.cpp's cache, stops it on quit.
2026-10-26 10:51:59 -07:00
Rohit C Prasad 45d58dc9a5 Add LM Studio as a local server provider
Joins llama.cpp and vLLM: address + optional key, window from its own listing.
Based on #434 by zalex666: name, model and help text.
2026-10-25 20:55:44 -07:00
Sung Kim bd99ef3af9 fix(upstage.svg): correct gradient ID typo (upsate → upstage) and add trailing newline 2026-10-25 20:55:16 -07:00
Sung KimandClaude Fable 5 d8ac7cefcf Add Upstage (Solar) as an OpenAI-compatible model provider
Wires Upstage into the existing compat-vendor pattern: a _compat descriptor
(prefilled https://api.upstage.ai/v1 endpoint, UPSTAGE_API_KEY env fallback),
a solar-pro3 matrix entry, the "solar" capability heuristic, suggested-model
extras, and the GUI key-help link + vendored lobe-icons logo.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-10-25 20:55:16 -07:00
Rohit C Prasad 4f6665817a Groq: current production rows with windows, key link, brand mark
Three ids from the models page with 131,072 windows (2026-10-25); the deferral note is closed.
2026-10-25 20:41:46 -07:00
Rohit C Prasad 5c3f4d71bf Novita: recommended GLM-5.2 row, key page link, brand mark
Keeps the factory's required recommended model; window 1,048,576 from the live catalogue (2026-10-25).
2026-10-25 20:41:14 -07:00
freecodewu fac0556f8e Add Novita AI provider 2026-10-25 20:40:52 -07:00
Rohit C Prasad 60ba5957c5 Atlas Cloud: GLM-5.2 as the served row, console key link, brand mark
Id and 1,048,576 window from the live catalogue (2026-10-25); gpt-4.1-mini is no longer served.
2026-10-25 20:40:28 -07:00
binyangzhu000-sudo 5d6107d6c5 feat(providers): add Atlas Cloud
Signed-off-by: binyangzhu000-sudo <224954946+binyangzhu000-sudo@users.noreply.github.com>
2026-10-25 20:40:28 -07:00
Rohit C Prasad e81daae2be SambaNova: three served rows, key link, brand mark, tail of the gallery
Rows and windows from the live catalogue (2026-10-25); the retired M2.7 row goes.
2026-10-25 20:40:04 -07:00
Rohit C Prasad af45cbe492 NVIDIA NIM: current Nemotron ids with windows, self-hosted Test lists models
Three rows from the live catalogue with the 1M windows NVIDIA lists (2026-10-25).
A non-default endpoint is probed with GET /models, so Test works on a self-hosted NIM.
2026-10-25 20:39:21 -07:00
Hrishikesh Naveenam 2191743f23 Add NVIDIA NIM provider support 2026-10-25 20:39:21 -07:00
Rohit C Prasad ccf7ba9199 OrcaRouter: two rows verified live, console key link, tail of the gallery
Sonnet 5 (1,000,000) and DeepSeek V4 Pro (1,048,576) from the public catalogue, 2026-10-25.
Suggestions come from the matrix; the default endpoint help applies.
2026-10-25 20:38:57 -07:00
XiaoHuo888andClaude 38bbe717a3 feat: add OrcaRouter as a named model provider
Registers OrcaRouter (https://www.orcarouter.ai) as a first-class
OpenAI-compatible provider, mirroring the existing OpenRouter wiring:
prefilled endpoint, ORCAROUTER_API_KEY (sk-orca- keys), server + GUI key
detection, verify support, three curated matrix models (Claude Sonnet 5,
GPT-5.5, DeepSeek V4 Pro), a GUI logo and keys link, and tests.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-25 20:38:41 -07:00
Rohit Prasad cda5d8a376 Merge pull request #193 from amrrs/nebius-token-factory
Add Nebius Token Factory provider
2026-10-25 20:37:22 -07:00
Rohit C Prasad 7a3c14ec21 Nebius: two verified rows with windows, tail of the gallery
Ids and 1,048,576 windows from the public catalogue (2026-10-25).
Drops the retired AI Studio clause; Nebius goes after xAI.
2026-10-25 19:48:59 -07:00
amrrsandCursor 0bdd7b7b35 Add Nebius Token Factory provider
Nebius Token Factory serves many labs' models behind one key over an
OpenAI-compatible API, so it joins Together/Fireworks as a reseller
descriptor plus curated matrix rows in their own namespaces.

Verified against the live API on 2026-07-26: /v1/models, a tool-call
round-trip and streaming on all four curated ids, and verify_provider_key
for both a good and a bad key.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-25 19:45:45 -07:00
Rohit C Prasad 7219e3a3c9 Customization: fetch option sits under the active provider
One indented checkbox under Exa, Firecrawl or Tavily when it is in use, with a caution line; the separate card is gone.
The web_fetch card line now reads "fetched by your search service, <name>".
2026-10-25 19:32:05 -07:00
Rohit C Prasad 301f6f7390 Tests follow the web search settings API
The grant-clearing test picks a keyless provider; the approval card test covers the fetch-provider line.
2026-10-25 19:21:12 -07:00
Rohit C Prasad c35b557a1e Approval card names the service that fetches the page
web_fetch carries fetch_provider when pages go through the search service; one gallery state for it.
2026-10-25 19:16:25 -07:00
Rohit C Prasad d1d9b12227 Settings: Customization tab with the Web search section
Providers as radio rows with a key per service (test and save), and the fetch-through-the-search-service switch.
Between Connectors and Context optimization; deep link #/settings/customization.
2026-10-25 19:16:25 -07:00
Rohit C Prasad f63222ff9d Artifact chip opens the viewer again while the rail is hidden
The chip's fetch went through the list request id, and the unhide refresh on
the same click superseded it, so nothing was selected.
2026-10-25 15:32:18 -07:00
Nabil hassan mohamed aliandClaude Sonnet 5 97be4ab911 Fix Slack connect dead-ending on "not signed in" for expired cloud sessions
cloud.status() only checked for an access_token's presence, not its
freshness, so the GUI kept showing "signed in" (and the live "Add to
Slack" button) after a session had actually expired. Clicking it hit
begin_managed_connect's real fresh_access_token check, which correctly
rejected it — but the modal just printed the bare error with no way
to recover.

SlackOneClick now treats a signed_in:false response from connectManaged
as a session-expiry signal, switches into the sign-in prompt, and
auto-resumes the Slack connect once sign-in completes.

Fixes #658

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-25 15:14:12 -07:00
Rohit Prasad 0afb784017 Merge pull request #613 from cagdasyurekli/fix/turn-state-switch-back-regression
test(#506): regression — switching away and back to a running session restores Stop
2026-10-25 14:57:42 -07:00
Rohit Prasad e462c69043 Merge pull request #500 from wgu9/fix/right-rail-stale-artifact-responses
fix(gui): keep artifact responses scoped to their session
2026-10-25 14:57:34 -07:00
Rohit Prasad 8eb571a532 Merge pull request #199 from tokito-99/fix/163-windows-voice-settings-delay
fix: avoid Windows delay in voice settings
2026-10-25 14:57:25 -07:00
Rohit Prasad 7ae4afca57 Merge pull request #612 from cagdasyurekli/feat/hide-thinking-while-working
feat(#611): option to hide the live thinking stream while a task runs
2026-10-25 14:25:23 -07:00
Rohit C Prasad f1a6441b4a Fold the hide-thinking checkbox into the Composer card
One Composer card in Settings, two rows; no second card with the same heading.
Behaviour, keys and test ids unchanged.
2026-10-25 14:10:02 -07:00
cyurekli 99ce7ac002 feat(#611): option to hide the live reasoning stream while a task runs
Adds a persisted 'Hide thinking while I work' Composer setting. When on, the
fast-scrolling live reasoning trace collapses to a quiet one-line 'Thinking...'
indicator during a run (so it is never mistaken for idle work), and the full
reasoning still appears in the answer's 'Thought process' disclosure after the
turn. OFF by default.

- backend: persist hide_reasoning_running pref + /v1/settings/hide-reasoning
- frontend: Settings toggle (Settings > Composer), gate the live ThinkingBlock
- tests: e2e covering default-on live block, hidden-mode indicator, finalized
  reasoning, and the Settings toggle round-trip
2026-10-25 14:07:42 -07:00
Rohit C Prasad d6178ab270 Settings error line: i18n, fetch timeout, tests
Move the Models error copy to en/zh keys and shape it like the local-models status line.
Abort the settings fetch after 10 s so a hung server shows the same Retry line; unit + e2e tests.
2026-10-25 14:01:36 -07:00
YASHAS 148b741d94 Show settings connection errors 2026-10-25 13:56:29 -07:00
boaz 4178d680b0 fix(gui): keep composer controls within narrow session layout (issue 208) 2026-10-17 16:34:23 +05:30
Rohit Prasad 292927913a Merge pull request #606 from cagdasyurekli/feat/keep-unsent-draft-per-session
feat(gui): keep unsent composer draft when changing conversation/page
2026-10-17 15:45:53 +05:30
Rohit Prasad 73415e9a2a Merge pull request #118 from akkikumar72/fix/search-modal-ime-enter
Prevent IME confirmation from opening search results
2026-10-17 15:45:44 +05:30
Rohit Prasad 94d0e73304 Merge pull request #649 from naliazheli/restore/pr-575-ime-enter-composition
Fix accidental send when confirming IME composition
2026-10-17 15:45:34 +05:30
Rohit Prasad ec114c309a Merge pull request #745 from pj991207/fix/topbar-window-drag-swallows-clicks
fix(gui): prevent topbar controls from starting native window drags
2026-10-17 15:38:13 +05:30
Rohit Prasad da454ff73a Merge pull request #378 from aniketshukla1/fix/248-macos-dock-reopen-window
fix(macos): restore the hidden window on Dock-icon click (#248)
2026-10-17 15:30:24 +05:30
Rohit Prasad fdcb43c04f Merge pull request #377 from aniketshukla1/fix/302-macos-calendar-reminders-plist
fix(macos): declare Calendar/Reminders usage strings so EventKit tools work (#302)
2026-10-17 15:30:20 +05:30
Rohit Prasad 67cc608880 Merge pull request #225 from kudala-bharani/agent/fix-artifact-preview-links
Fix URL-encoded Unicode artifact links
2026-10-17 15:30:17 +05:30
pj991207 a79f7c47f1 Merge remote-tracking branch 'upstream/main' into fix/topbar-window-drag-swallows-clicks 2026-10-14 08:28:36 +09:00
Devika Verma f0f59ff977 OPE-153: a question card can be skipped — one question, or the whole card
Questions were the only Inbox item kind with no way out. Approvals have Deny,
directory requests have Deny, plans have Reject, notifications have Dismiss —
a question had nothing, so a user who couldn't answer had to invent an answer
that misleads the agent or abandon the session. Worst on a card with exhaustive
options and allow_text:false: literally no control but the options themselves.

The card now carries Skip, and a grouped card carries both "Skip question" (this
one, advance) and "Skip all" (resolve the rest). Skip all KEEPS answers already
given — it means "don't ask me the rest", not "discard". Skip is present whatever
allow_text says, since that's exactly where the user was stuck.

The button was the easy half. answer_result() returned {"answer": ""} both for a
blank resolution and for anything unparseable, so a skip could not be told from an
empty answer. A skipped question now answers null — never "" — alongside `skipped`
naming what was declined. Two consequences in the engine: an all-skipped card reads
"denied" rather than "ok" (a non-empty answers map is no longer proof anyone
answered), and _note_ask_replies drops nulls, else str(None) files the literal
"None" as something the user said.

What the agent is told about a skip is deliberately asymmetric. "Do not put this
question back to them" is absolute — that anti-loop guarantee is what the skip is
for. "Pick a default" is conditional: the same note fires for "you choose the chart
colour" and for "Staging or Production?", and a model that follows instructions
literally would deploy off a shrug. Opus 4.8 refused that guess on its own; smaller
models are likelier to comply, so proceeding without deciding is offered as a third
path rather than left to whichever model is driving.

Verified against a live model, not just fixtures: the options-only card skipped
cleanly, and a grouped card kept its answered step while reporting the skipped ones
as skipped. Four e2e specs and four Python tests cover both surfaces.
2026-10-10 11:24:01 +05:30