68 Commits
Author SHA1 Message Date
ciregenz e6d05dfb1b [eric] agents: RunToolScript (PTC): scripts chain allowlisted tools in one turn and only printed output enters context (hermes code_execution lift, ENG-354 lever) 2026-08-18 23:41:38 -07:00
ciregenz 53064da853 [eric] settings: a Tools tab with per-tool allow/ask/deny, and ShowUI/Skill join the catalog so their dispatch gates are finally reachable (ENG-284) 2026-08-17 16:07:58 -07:00
ciregenz ce2989ea1b [eric] agents: CanvasCommand lets an agent move, collapse, tile, tidy and close its own cards after spawn (ENG-334) 2026-08-17 16:04:21 -07:00
ciregenz 0688c85607 [eric] apps: apps can call the user's connected tools behind a per-app grant gate (approval card, deny-by-default, Origin-derived identity) 2026-08-09 08:52:36 -07:00
ciregenz c9840eb00b [eric] hardening: legacy pre-collapse tool ids canonicalize to core, and the docked mini gets a load listener plus a 1s belt so a silent layout shift can't strand it 2026-08-08 20:48:47 -07:00
ciregenz 4faba74d55 [eric] agents: every builtin tool server rides ONE process per chat, and the gate enumerates its grants instead of wildcarding 2026-08-08 12:59:50 -07:00
ciregenz 67011befe3 [eric] mcp: discovery refuses a credentialless env_vars server, and the failure translator reads the whole tail not the npx dump 2026-08-04 16:43:07 -07:00
ciregenz db6c7a25b7 [eric] mcp: a dead server says its sign-in expired instead of printing a goroutine dump 2026-08-02 21:27:34 -07:00
ciregenz f24e6ecc52 [eric] mcp: wire X + TikTok into catalog, preflight, env injection + linter exceptions 2026-06-30 17:19:58 -07:00
ciregenz 63c32554ae [eric] mcp: reddit session-borrow MCP (free, full human action set; WIP) 2026-06-29 23:05:15 -07:00
ciregenz 1b6d747326 [eric] merge #107 (pierre): app-use OPENSWARM_APP bridge + AppAgent
# Conflicts:
#	electron/main.js
#	frontend/src/app/pages/Views/ViewPreview.tsx
2026-06-29 21:34:11 -07:00
abccodes 3a252aa0b3 [aidan] feat/skills: Skill tool + installed-skills catalog for agent discovery 2026-06-29 02:13:05 -07:00
SirKentut 75df12a1b7 [pierre] feat: merge app-use (OPENSWARM_APP bridge + AppAgent) onto eric/dev, convention-clean
Brings the app-use feature (OPENSWARM_APP bridge, AppAgent delegation tool,
BrowserClickPoint, autopilot supervision) onto the linted eric/dev base.

- Resolved 9 conflicts favoring eric's refactored structure; renamed all of
  pierre's _-prefixed names to p_/P_, kept eric's prior_messages resume guard.
- Made the 4 test-exercised bridge helpers public (p-private rule).
- Wired AppAgent into browser_delegation_tools + BuiltinTool registry and
  threaded selected_app_output_ids -> OPENSWARM_SELECTED_APP_IDS (eric had
  forward-ported the prompt but not the tool, so it was unreachable).
- Linter clean (underscore/p-private/ruff/cycles 0); 301 backend tests pass.
2026-06-26 02:44:10 -07:00
ciregenz 0d093cc5f8 [eric] backend: one-line every comment + collapse 3+ blank runs across apps/ (AST-verified identical, -lines); CLAUDE.md one-line-comment rule 2026-06-25 02:29:04 -07:00
ciregenz c5fd4f6b86 [eric] apps: leading-_ -> p_ for import aliases (import x as _y) across apps modules (file-local bindings, p-private 0) 2026-06-23 21:15:43 -07:00
ciregenz 798448acca [eric] apps: leading-_ -> p_ for function-local vars/args/nested-fns across 53 apps modules (scope-aware AST rename, module symbols untouched, p-private 0) 2026-06-23 21:11:44 -07:00
ciregenz a4c92aaa33 [eric] update cross-module + test refs to promoted service/version symbols 2026-06-23 20:53:27 -07:00
ciregenz e1bd57a629 [eric] tools_lib: update dashboards load_all ref after promote 2026-06-23 20:47:25 -07:00
ciregenz 71b2b33fae [eric] tools_lib: leading-_ -> p_/public across tools_lib/mcp_config/mcp_discovery/oauth_tokens/tool_taxonomy; promote cross-file public (load_all_tools/sanitize_server_name/discover_mcp_tools_*), fix re-export + attr test refs 2026-06-23 20:30:14 -07:00
ciregenz 05432cd680 [eric] approvals: Always-approve persists per-tool via a shared read/write slot resolver 2026-06-22 04:00:09 -07:00
ciregenz f0cb676afb [eric] permissions: read-only MCP actions auto-allow by default; writes still ask
(cherry picked from commit 03f3ce05be2c555990e7e6486859c48f0cd3c94c)
2026-06-19 00:25:54 -07:00
ciregenz 40c863e9cf [eric] integrations: add GitHub MCP (remote http server + one-click OAuth)
(cherry picked from commit 901e3bf98244d3e599db5f3f05f4dc2ce943888e)
2026-06-19 00:25:54 -07:00
ciregenz c9caaf8a8c [eric] permissions: default Bash to always_allow (seed + one-time lift) so shell commands stop prompting 2026-06-16 04:00:04 -07:00
ciregenz 249f425a2d [eric] backend: stat-validated caches for settings.json and tools dir, disk parse only on change 2026-06-05 16:45:33 -07:00
ciregenz 3d65cacddf [eric] tools: drop personal gmail from the connected-account comment example 2026-06-01 15:01:13 -07:00
ciregenz 6cf2606666 [eric] merge: fold eric/cleanup abstraction refactor into dev (resolve 9, re-home edits) 2026-05-24 16:24:59 -07:00
ciregenz 6e2d4e94aa [eric] actions: scope MCP service rules per integration; fixes mislabeled @ commands 2026-05-24 02:40:35 -07:00
ciregenz a8843d58c8 [eric] split: extract tools_lib mcp-config/discovery/oauth helpers 2026-05-23 02:47:36 -07:00
ciregenz 81fea443fd [eric] cleanup: drop dead code, dedup 9router prefix, strip em-dashes (backend) 2026-05-23 02:29:22 -07:00
ciregenz d8f803b54d [eric] tools: fix Google Workspace pill showing 'Google Workspace account' instead of email 2026-05-22 19:05:14 -07:00
ciregenz 1628e09305 fix: seed builtin_permissions.json on startup so Settings toggles persist
Without this the file was missing on first run, load_builtin_permissions()
returned {}, and the agent fell through to _DEFAULTS={Bash:'ask'} even
though the Settings UI showed green 'always_allow' checkmarks (because the
UI defaulted missing entries to always_allow for DISPLAY but the agent
defaults to ask for SAFETY). The mismatch meant users got prompted on
every ls/cd/pwd despite having flipped Bash to always_allow in the UI.

Lifespan now seeds the file with Bash=ask and everything else=always_allow,
matching agent_manager._DEFAULTS. Idempotent: only writes if a tool is
missing; never clobbers a policy the user already set.
2026-05-20 19:37:42 -07:00
ciregenz 5b0c6e1df3 defluff: strip em-dashes + shorten docstrings across backend (cosmetic only, no logic change) 2026-05-20 05:25:23 -07:00
ciregenz 178a6060eb gmail: route OAuth refresh through cloud rotation-pool proxy
google-workspace-mcp's gauth.py hardcodes token_uri to oauth2.googleapis.com
and uses local CLIENT_ID/SECRET on every refresh. OAuth runs through a
rotation pool on the cloud side, so the refresh_token is bound to the
pool slot that minted it, not the single client baked into the DMG, and
direct refreshes return unauthorized_client. Redirect spawn through a
shim that monkey-patches get_credentials to point token_uri at a local
proxy (/api/tools/google-oauth-token), which forwards the refresh to
api.openswarm.com/api/oauth/google/refresh (pool-aware). Unblocks every
Gmail/Drive/Calendar query for users on the cloud OAuth pool.
2026-05-20 01:58:59 -07:00
ciregenz a1fefa0ae8 [eric] approvals: trust patterns for action approvals + smarter sensitive-file gating 2026-05-20 01:56:38 -07:00
ciregenz d20ff7d16c [eric] app builder cleanup — remove Auto Run, Test Input, RenderOutput tool + Outputs activation gate 2026-05-11 09:05:45 -07:00
ciregenz b3428a736b [eric] custom OpenAI-compatible provider support, youtube bug fix (windows) 2026-05-07 21:22:40 -07:00
ciregenz 11487456b5 eric] Google OAuth via cloud-proxy + gitleaks CI 2026-05-06 13:28:35 -07:00
ciregenzandClaude Opus 4.7 f0ea0fd1bc [eric] 1.0.27 production push: fixes the weird "exec" icon next to OpenSwarm on fresh Macs, faster startup (~10s less from shipping a real Node binary instead of running Electron as Node), and Google Workspace + other uvx-based MCPs work again on machines without uv installed.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-27 22:37:17 -07:00
ciregenz f8557e378f [eric] 1.0.26: ship Discord shim default + auto-migrate legacy + clean Google
reconnect
2026-04-26 18:12:45 -07:00
ciregenz c501b6340c [eric] OAuth + MCP polish: more reliable connect flow, Discord shim,
connected MCPs sort to top, Haiku-overflow warning, misc fixes, security risks fixes
2026-04-26 15:14:16 -07:00
ciregenz 94ea07dd0c [eric] make Windows install + boot way faster: splash window so it's not frozen on startup, swap MCP node_modules for tiny esbuild bundles
(138MB → 7MB), pre-compile python bytecode, parallelize Widevine, never silently quit
2026-04-25 03:05:08 -07:00
Eric 9ff07443db [eric] windows shipping: electron-builder win+nsis + Azure Trusted Signing hook, build-app-win.ps1 / build-python-env-win.ps1 mirroring mac, release-windows.yml tag-triggered CI, icon.ico + .env.windows.example, .claude/ + .env.* gitignored. Runtime fixes: PYTHONUTF8=1 (cp1252 UnicodeDecode), python.exe / Lib\site-packages paths, PYTHONPATH path.delimiter, taskkill /T /F process tree, OAuth UA platform branch, sign-vmp postinstall via node wrapper. Backend: _resolve_command PATHEXT probing (fixes uvx not found), UV_PYTHON Windows path. Cross-env added to 9router+electron for NODE_ENV prefix on cmd. Onboarding: poll subscriptions/status while connect step is open, render Connected for active providers (was stuck on "Connect" after 30s OAuth poll timeout). 2026-04-21 18:15:49 -07:00
ciregenz 301b0f7707 [eric] auto-heal corrupt npx cache in MCP stdio discovery: on ERR_MODULE_NOT_FOUND pointing into ~/.npm/_npx/<hash>/, wipe
that dir and retry once — fixes Discord/YouTube failing with "MCP stdio process exited unexpectedly" after partial npx installs,
  per-browser auto-close: spawned browser cards now disappear on their own sub-agent's completion instead of lingering until the parent agent
  finishes, WebSocketManager agent:status matches by session.browser_id (spawned_by is the parent, so it never matched the finishing
  sub-agent), user-created/pre-selected browsers untouched
2026-04-20 01:20:20 -07:00
ciregenz 14e1d02bbb [eric] reasoning UI + thinking-level controls: collapsible 'Thought for Ns' bubble with shimmer, per-session thinking level (off/low/med/high/auto) on
reasoning-capable models, gate GitHub Copilot as 'Coming soon', delete Twitter/xbird integration, fix model-picker first-click + 200K context cap on Sonnet/Opus, revive
  arrow-key dashboard nav after typing/clicking/zooming
2026-04-15 12:47:34 -07:00
ciregenz 71f3eb640a [eric] RequestHumanIntervention: show in BrowserAgentOverlay + parent chat inline feed + DynamicIsland with consistent amber UI, add
skip-with-reason text input, shorter intervention messages, register in BUILTIN_TOOLS, fix waiting_approval session selector,
  sticky-to-bottom scroll in inline feed
2026-04-10 10:35:55 -07:00
ciregenz 1dad8a57fc [eric] browser sub-agent: loop detection, ReportProgress, CDP ax tree, batching, compaction, hide-don't-unmount Dashboard so browser cards survive route navigation 2026-04-07 20:00:32 -07:00
ciregenz 077d9b4011 [eric] add Discord MCP integration with shared bot + per-user guild scoping 2026-04-06 20:02:27 -07:00
ciregenz 5d7c93d9a5 [eric] HubSpot MCP integrations with OAuth PKCE, fix backend crash from unhandled BaseExceptionGroup during MCP tool denial 2026-04-06 14:43:53 -07:00
ciregenz 3bbc29ea98 [eric] add Airtable MCP integration with OAuth + PKCE 2026-04-06 13:18:43 -07:00
ciregenz 0be4cc98a9 fix MCP docs links not opening in browser cards, implement youtube mcp 2026-04-06 11:48:03 -07:00