Commit graph

2665 commits

Author SHA1 Message Date
8f86dbbdac Merge pull request 'add optimization to browser-use' (#18) from feature/browser-use-optimization into main
All checks were successful
Deploy to BrowserUse VPS / deploy (push) Successful in 3s
Reviewed-on: #18
2026-05-04 21:39:45 +00:00
f3149503e3 Merge pull request 'update ci/cd config' (#17) from hotfix/fix-ci/cd into main
All checks were successful
Deploy to BrowserUse VPS / deploy (push) Successful in 2s
Reviewed-on: #17
2026-04-28 21:56:39 +00:00
0a2d44bca8 update ci/cd config 2026-04-29 00:56:09 +03:00
e73e10e2b4 Merge pull request 'feature/api-for-subagent' (#16) from feature/api-for-subagent into main
Reviewed-on: #16
2026-04-28 21:46:59 +00:00
e05c9479e5 Merge branch 'feature/api-subagent-browser-isolation'
# Conflicts:
#	README.md
2026-04-29 00:41:42 +03:00
c3bbd925b0 Trigger VPS deployment workflow
All checks were successful
Deploy to BrowserUse VPS / deploy (push) Successful in 3s
2026-04-28 18:38:19 +03:00
5419746b3d Fix browser view nginx regex locations
All checks were successful
Deploy to BrowserUse VPS / deploy (push) Successful in 2s
2026-04-28 18:23:11 +03:00
6e94cc07c3 Merge browser runtime deployment changes
Some checks are pending
Deploy to BrowserUse VPS / deploy (push) Waiting to run
2026-04-28 18:16:57 +03:00
df7e4de7f9 Add VPS deployment workflow 2026-04-28 18:16:41 +03:00
280247e1e5 Integrate per-user browser runtimes into subagent API 2026-04-27 22:06:57 +03:00
952b2e7d17 update api for subagent protocol and delete hermes agent 2026-04-25 01:39:02 +03:00
ff1799cd98 Merge pull request 'add history endpoint' (#13) from feature/api-history-response into develop
Reviewed-on: #13
2026-04-22 12:16:46 +00:00
fb7ab50de6 add history endpoint 2026-04-22 15:08:27 +03:00
Максим Туревич
365ab8dd79 tests add for api 2026-04-22 03:46:17 +03:00
5aeb26b222 add optimization to browser-use 2026-04-19 01:43:08 +03:00
Максим Туревич
50589232d6 Merge branch 'feature/browser-use-api' into develop
# Conflicts:
#	.env.example
#	browser_env/entrypoint.sh
#	docker-compose.yml
#	hermes_code/tools/browser_use_tool.py
2026-04-13 21:58:55 +03:00
7f197fde37 Merge pull request 'enable vision' (#10) from hotfix/enable-vision into feature/browser-use-api
Reviewed-on: #10
2026-04-07 21:33:13 +00:00
Кобылкевич Фёдор
50572296be enable vision 2026-04-08 00:31:42 +03:00
Кобылкевич Фёдор
6821522ea3 change architecture and swap from httpx to aiohttp 2026-04-07 22:49:27 +03:00
Кобылкевич Фёдор
7a76d1e21a change architecture and swap from httpx to aiohttp 2026-04-07 22:49:06 +03:00
Кобылкевич Фёдор
eca29af5e1 add descriptions in schemas.py 2026-04-07 22:08:33 +03:00
Кобылкевич Фёдор
d277955a9a add api for post browser-use tasks 2026-04-07 22:01:53 +03:00
Кобылкевич Фёдор
37f6303992 Merge branch 'feature/telegram-browser-integration' into develop
# Conflicts:
#	.gitignore
#	README.md
2026-04-06 23:16:01 +03:00
Кобылкевич Фёдор
890d492de0 add schemas and swap browser_use_runner in docker with browser and now agent use skill from the other container 2026-04-06 23:08:03 +03:00
e2a1b93f60 some changes 2026-04-04 13:41:01 +03:00
Максим Туревич
bb5ce8e762 Merge remote-tracking branch 'origin/feature/telegram-browser-integration' into feature/telegram-browser-integration 2026-04-03 17:58:36 +03:00
Максим Туревич
aecb7775e2 browser tool edit 2026-04-03 17:56:53 +03:00
Кобылкевич Фёдор
480dfcd36e add healthcheck 2026-04-02 12:00:06 +03:00
Кобылкевич Фёдор
9432abee65 edit entrypoint.sh 2026-04-02 11:55:18 +03:00
Кобылкевич Фёдор
b388d9fab3 update entrypoint and makes profile for remote setup in docker-compose.yml 2026-04-02 09:22:22 +03:00
Максим Туревич
e8117a486f readme edit 2026-04-01 01:58:26 +03:00
Максим Туревич
6b85aa5175 readme edit 2026-04-01 01:57:57 +03:00
Тимошенко Артём
cfb98a58b6 edit Docker compose 2026-04-01 00:33:26 +03:00
Тимошенко Артём
efa7a5b6fc edit tunnel in docker compose 2026-04-01 00:04:38 +03:00
Тимошенко Артём
ded3c0cc18 edit tunnel in docker compose 2026-03-31 23:58:44 +03:00
a01257ead9 The architecture has been updated 2026-03-31 23:31:36 +03:00
805f7a017e new Dockerfile, successfully integrated user interface browser, novnc 2026-03-31 02:00:58 +03:00
de15e349ca edit Dockerfile, add new dependencies for new browser use tool 2026-03-29 21:26:58 +03:00
9406d26afd the agent and browser are now running in docker 2026-03-27 01:05:42 +03:00
c0b3dd4fb9 edit Dockerfile, docker compose 2026-03-26 12:59:32 +03:00
d4534ccc29 edit Dockerfile, docker-compose.yml, .dockerignore 2026-03-25 16:23:28 +03:00
2261cbf1a0 Add Dockerfile, docker-compose.yml, .dockerignore 2026-03-25 15:20:14 +03:00
Teknium
481915587e
fix: update context pressure warnings and token estimates after compaction
Reset context pressure warnings and update last_prompt_tokens and last_completion_tokens in the context compressor to prevent stale values from causing excessive warnings and re-triggering compression. This change ensures accurate pressure calculations following the compaction process.
2026-03-24 09:25:10 -07:00
Teknium
0b993c1e07
docs: quote pip install extras to fix zsh glob errors (#2815)
zsh interprets square brackets as glob patterns, so
`pip install hermes-agent[voice]` fails with 'no matches found'.
Quote all pip install commands with extras across 5 docs pages (12 instances).

Reported by OFumik0OP.
2026-03-24 09:25:01 -07:00
Teknium
9718334962
docs: fix api-server response storage — SQLite, not in-memory (#2819)
* docs: update all docs for /model command overhaul and custom provider support

Documents the full /model command overhaul across 6 files:

AGENTS.md:
- Add model_switch.py to project structure tree

configuration.md:
- Rewrite General Setup with 3 config methods (interactive, config.yaml, env vars)
- Add new 'Switching Models with /model' section documenting all syntax variants
- Add 'Named Custom Providers' section with config.yaml examples and
  custom:name:model triple syntax

slash-commands.md:
- Update /model descriptions in both CLI and messaging tables with
  full syntax examples (provider:model, custom:model, custom:name:model,
  bare custom auto-detect)

cli-commands.md:
- Add /model slash command subsection under hermes model with syntax table
- Add custom endpoint config to hermes model use cases

faq.md:
- Add config.yaml example for offline/local model setup
- Note that provider: custom is a first-class provider
- Document /model custom auto-detect

provider-runtime.md:
- Add model_switch.py to implementation file list
- Update provider families to show Custom as first-class with named variants

* docs: fix api-server response storage description — SQLite, not in-memory

The ResponseStore class uses SQLite persistence (with in-memory
fallback), not pure in-memory storage. Responses survive gateway
restarts.
2026-03-24 09:05:15 -07:00
Teknium
ebcb81b649
docs: document 9 previously undocumented features
New documentation for features that existed in code but had no docs:

New page:
- context-references.md: Full docs for @-syntax inline context
  injection (@file:, @folder:, @diff, @staged, @git:, @url:) with
  line ranges, CLI autocomplete, size limits, sensitive path blocking,
  and error handling

configuration.md additions:
- Environment variable substitution: ${VAR_NAME} syntax in config.yaml
  with expansion, fallback, and multi-reference support
- Gateway streaming: Progressive token delivery on messaging platforms
  via message editing (StreamingConfig: enabled, transport, edit_interval,
  buffer_threshold, cursor) with platform support matrix
- Web search backends: Three providers (Firecrawl, Parallel, Tavily)
  with web.backend config key, capability matrix, auto-detection from
  API keys, self-hosted Firecrawl, and Parallel search modes

security.md additions:
- SSRF protection: Always-on URL validation blocking private networks,
  loopback, link-local, CGNAT, cloud metadata hostnames, with
  fail-closed DNS and redirect chain re-validation
- Tirith pre-exec security scanning: Content-level command scanning
  for homograph URLs, pipe-to-interpreter, terminal injection with
  auto-install, SHA-256/cosign verification, config options, and
  fail-open/fail-closed modes

sessions.md addition:
- Auto-generated session titles: Background LLM-powered title
  generation after first exchange

creating-skills.md additions:
- Conditional skill activation: requires_toolsets, requires_tools,
  fallback_for_toolsets, fallback_for_tools frontmatter fields with
  matching logic and use cases
- Environment variable requirements: required_environment_variables
  frontmatter for automatic env passthrough to sandboxed execution,
  plus terminal.env_passthrough user config
2026-03-24 08:56:21 -07:00
Teknium
ac5b8a478a
ci: add supply chain audit workflow for PR scanning (#2816)
Scans every PR diff for patterns associated with supply chain attacks:

CRITICAL (blocks merge):
- .pth files (auto-execute on Python startup — litellm attack vector)
- base64 decode + exec/eval combo (obfuscated payload execution)
- subprocess with encoded/obfuscated commands

WARNING (comment only, no block):
- base64 encode/decode alone (legitimate uses: images, JWT, etc.)
- exec/eval alone
- Outbound POST/PUT requests
- setup.py/sitecustomize.py/usercustomize.py changes
- marshal.loads/pickle.loads/compile()

Posts a detailed comment on the PR with matched lines and context.
Excludes lockfiles (uv.lock, package-lock.json) from scanning.

Motivated by the litellm 1.82.7/1.82.8 credential stealer attack
(BerriAI/litellm#24512).
2026-03-24 08:56:04 -07:00
Teknium
624e4a8e7a
chore: regenerate uv.lock with hashes, use lockfile in setup (#2812)
- Regenerate uv.lock with sha256 hashes for all 2965 package artifacts
- Add python_version marker to yc-bench (requires >=3.12)
- Update setup-hermes.sh to prefer 'uv sync --locked' for hash-verified
  installs, with fallback to 'uv pip install' when lockfile is stale

This completes the supply chain hardening: pyproject.toml bounds the
version ranges, and uv.lock pins exact versions with cryptographic
hashes so tampered packages are rejected at install time.
2026-03-24 08:42:45 -07:00
Teknium
177e43259f
refactor: update mini_swe_runner to use Hermes built-in backends
Replace all minisweagent imports with Hermes-Agent's own environment
classes (LocalEnvironment, DockerEnvironment, ModalEnvironment).

mini_swe_runner.py no longer has any dependency on mini-swe-agent.
The runner now uses the same backends as the terminal tool, so Docker
and Modal environments work out of the box without extra submodules.

Tested: local and Docker backends verified working through the runner.
2026-03-24 08:27:15 -07:00
Teknium
c9b76057d4
chore: pin all dependency version ranges (supply chain hardening) (#2810)
Adds upper-bound version pins (<next_major) to all dependencies in
pyproject.toml — both core and optional. Previously most deps were
unpinned or had only floor bounds, meaning fresh installs would pull
whatever version was latest on PyPI.

This limits blast radius from supply chain attacks like the litellm
1.82.7/1.82.8 credential stealer (BerriAI/litellm#24512). With bounded
ranges, a compromised major version bump won't be pulled automatically.

Floors are set to current known-good installed versions.
2026-03-24 08:25:17 -07:00