Commit Graph

407 Commits

Author SHA1 Message Date
Javier Martinez
67bbd86a03 fix: unify all logic 2026-07-08 18:17:12 +02:00
Javier Martinez
ad3d1e0655 Revert "fix: blocks in expansion"
This reverts commit a2110f94a8.
2026-07-08 17:51:57 +02:00
Javier Martinez
8ade3c7f16 fix: serializer 2026-07-08 17:50:50 +02:00
Javier Martinez
712f1c017e fix: config 2026-07-08 17:35:13 +02:00
Javier Martinez
3689426bb1 fix: args 2026-07-08 17:04:24 +02:00
Javier Martinez
49c1c41232 fix: config 2026-07-08 16:42:16 +02:00
Javier Martinez
bd10ca1ba7 fix: config 2026-07-08 16:16:31 +02:00
Javier Martinez
9ad2d3e534 fix: tools 2026-07-08 15:51:07 +02:00
Javier Martinez
9022d5fadf feat: do serializable the tool executor 2026-07-08 15:32:02 +02:00
Javier Martinez
57ef0f1488 fix: get result 2026-07-08 13:57:08 +02:00
Javier Martinez
9469fffa76 feat: add generic scheduler 2026-07-08 13:36:39 +02:00
Javier Martinez
c526601b1d fix: mypy 2026-07-08 12:37:55 +02:00
Javier Martinez
23ff6f3956 feat: add chat/tools workers 2026-07-08 12:35:05 +02:00
Javier Martinez
ba02162855 fix: max 2026-07-08 11:12:56 +02:00
Javier Martinez
4d42533032 feat: add chat worker 2026-07-08 10:32:25 +02:00
Javier Martinez
3887c61479 feat: add adaptative 2026-07-08 09:34:38 +02:00
Javier Martinez
9afc80865b feat: tool scheduler 2026-07-08 08:47:49 +02:00
Javier Martinez
7c0ed865b0 fix: impl 2026-07-07 17:37:05 +02:00
Javier Martinez
b4938b84d8 fix: more fixes
...
2026-07-07 17:37:05 +02:00
Javier Martinez
57b1290596 fix: readers 2026-07-07 16:22:31 +02:00
Javier Martinez
4a45e9462a fix: multiplexer 2026-07-07 16:22:31 +02:00
Javier Martinez
5e5a7daf56 fix: remove maximum concurrent users
...
2026-07-07 16:22:31 +02:00
Javier Martinez
a2110f94a8 fix: blocks in expansion 2026-07-07 15:58:08 +02:00
Javier Martinez
59cac2abd5 fix: avoid to block the loop 2026-07-07 15:30:45 +02:00
Javier Martinez
bcadb418f3 docs: add community forks (#2290) 2026-07-06 11:20:32 +02:00
Javier Martinez
bfd2633d89 feat: add code execution ui (#2289) 2026-07-06 11:20:22 +02:00
Javier Martinez
f3d24b5413 fix: update fern & resolve fern preview (#2288)
* chore: update fern cli

* docs: add examples

* fix: update doc
2026-07-06 11:20:05 +02:00
Javier Martinez
61ad9ca56a chore(deps): update Claude specs and anthropic SDK (#2287)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-06 09:54:45 +02:00
OrbisAI Security
4641db358c fix: CVE-2026-44209 security vulnerability (#2283)
Automated dependency upgrade by OrbisAI Security
2026-07-06 08:37:04 +02:00
Javier Martinez
603152a62a docs: code execution (#2279)
* fix: preview

* docs: add doc
2026-06-29 18:32:01 +02:00
Javier Martinez
f2cffd1ab9 feat: code execution v2 (#2278)
* fix: ensure that the publisher is ready to publish new messages

* fix: dockerfile

* fix: clones

(cherry picked from commit bc0a77e050)

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* feat: M3 persistent sessions + M4 isolated bash + OpenSandbox provider

Introduces mount-aware sessions with canonical path abstraction:
- ContentBundle / SessionMount abstraction for skill/plugin mounting
- PathTranslator: rewrites commands and scrubs output (canonical ↔ real paths)
- LocalMount + ReadOnlyMount: local FS-backed mounts; read-only cache shared across sessions
- BashExecutor: asyncio subprocess with setsid + setrlimit isolation + killpg on timeout
- SkillLoader: downloads skill files from object storage as ContentBundles
- LocalCodeExecutionProvider: rewritten to use mounts, TTL reaper, BashExecutor
- OpenSandboxCodeExecutionProvider: new Docker/K8s backend via opensandbox SDK
- Async cascade: create_session / get_or_create_session / build_tool all async
- ObjectStorage.list_files() added to ABC + both implementations
- New settings: session_ttl_seconds, bash rlimit fields, OpenSandboxSettings

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* refactor: generic ContentBundle with BundledFile, remove skill_filter from code_execution layer

- Replace ContentBundle/dataclass with pydantic BaseModel; add BundledFile with path, content, permissions
- Update ReadOnlyMount to use list[BundledFile] with per-file chmod
- Remove skill_filter and SkillLoader from create_session() in base, local, and code_execution_component
- Move skill-to-bundle resolution into BashToolBuilder (inject SkillLoader there)
- Update SkillLoader.load() to return list[BundledFile] objects

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: remove opensandbox

* feat: use sandbox inside of code executor

* fix: mypy

* feat: add workspace manager

* feat: improvements

* feat: add env abstraction

* feat: remove leftovers

* feat: improve skill content

* fix: macos

* fix: mypy

* feat: add code executor prompt

* feat: add content bundle in stack

* fix: mypy

* fix: layout

* feat: add skill prompt

* fix: order

* feat: allow to present final files

* feat: add container block

* fix: remove default config

* fix: session pers

* fix: do lazy env

* fix: mounter

* feat: refactor mounter

* fix: container

* feat: add requirements

* fix: add container registry

* fix: move to be lazy

* fix: mypy

* fix: current folder

* fix: stop sandbox in tabular

* fi: ensure to use absolute paths in bash & text editor

* feat: add files router

* feat: simplify

* feat: update present files

* fix: download files

* fix: mypy

* fix: tests

* fix: tests

* fix: bash executor in linux

* Revert "fix: bash executor in linux"

This reverts commit 483e208a96.

* Revert "fix: tests"

This reverts commit 50d9288f5e.

* test: remove test in ci

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-29 18:29:29 +02:00
Javier Martinez
4cca7d0b97 feat: allow to attach files as Anthropic does (#2265)
* feat: add convert/parser service

(cherry picked from commit 2350ad0a3e60291fbb0ded1d1f1d1c784dcc6b3c)

* fix: mypy & test

(cherry picked from commit 4e5358ee156dc11400b6f1fdbcc71a58220a581c)

* feat: add initial content

(cherry picked from commit 6eaeb4f1a8e20ce09fb208aca8468185d3866e3c)

* fix: return content as tree

* docs: add convert examples

* feat: add parallel support

* feat: add concurrency in multimodal interceptor

* refactor: move config to a common class

* fix: apply preprocessors only over the last user message

* fix: final tweaks to allow to configure feature flag

* fix: support legacy blocks

* test: fix

* fix: mypy

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* fix: image/audio in the chat

* fix: copilot

* fix: name

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-06-25 15:35:46 +02:00
Javier Martinez
42a6c047d0 feat: add validation skill endpoint + skill prompt (#2272)
* feat: add skill validator endpoint

* fix: skills

* feat: add skill prompt

(cherry picked from commit c36d27f008)

# Conflicts:
#	private_gpt/chat/input_models.py
#	private_gpt/components/prompts/prompt_builder.py
#	private_gpt/server/chat/interceptors/platform_guidelines_interceptor.py

* fix: test

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* fix: clarify skill visibility comment

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* fix: rename has_loaded_non_eager variable to snake_case

* test: cover skill validation route

* test: fix invalid skill validation case

* test: cover skill tool visibility states

* feat: improve skill tools + prompt

* fix: mypy

* feat: allow to limit the skill maximum size

* feat: add validation error codes

* fix: tests

* fix: invalid frontmatter

* fix: edge cases

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-06-25 15:35:26 +02:00
Alfonso Lozana
78a1e8b9f6 feat: control docs parser (#2273)
* fix: ensure that the publisher is ready to publish new messages

* fix: dockerfile

* fix: clones

(cherry picked from commit bc0a77e050)

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* fix: add ExtractionUnsuccessfulError in docling reader

* feat: add vision pipeline

* feat: add fall back with vision

* feat: add settings of enable_vision_fallback

* doc: update doc

* chore: code refactor

* feat: remove pypdfium2 dependency

* fix: add settings and change only doc vision behaviour

* feat: change extraction_type_override to skip_strategy_inference (disable strategy on vision transform parser)

* chore: make check

---------

Co-authored-by: Javier Martinez <javiermartinezalvarez98@gmail.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-06-24 08:22:17 +02:00
Alfonso Lozana
5d60141f08 feat: improve web search (#2274)
* fix:[ZYL-3553] web scraper memory (#693)

* fix: web scraper memory

* chore: make check

chore: fix make check errors

chore: fix make check

fix: async_playwright for test

chore: fix  ruff check -

chore: try to fix mypy

chore: more fix...

chore: add playwright to evaluation

fix: mypy

Revert "chore: add playwright to evaluation"

This reverts commit d916b56dc144a405ae0ff0103d1b377764f1ecad.
# Conflicts:
#	private_gpt/components/tools/builders/web_fetch_builder.py
#	private_gpt/components/web/web_scraper_service.py
#	private_gpt/components/web/web_search/processors/clean_content.py
#	private_gpt/components/web/web_search/processors/select_best_links.py
#	private_gpt/components/web/web_search/web_search_service.py
#	private_gpt/server/tools/tool_service.py

* feat: improve web scraper pool (#695)

* feat: [ZYL-3673] web search improve quality (#697)

* feat: improve web scraper pool

* feat: improve select best links

* fix: add settings of context

* fix: brave config (#699)

---------

Co-authored-by: Javier Martinez <javiermartinezalvarez98@gmail.com>
2026-06-24 08:20:24 +02:00
dependabot[bot]
671eae37ae chore(deps): bump actions/checkout from 6 to 7 (#2275)
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-24 08:19:45 +02:00
zylon-ci
88d7e259a4 chore(main): release 1.0.1 (#2263)
* chore(main): release 1.0.1

* build: update uv.lock for 1.0.1

* docs: update OpenAPI spec for 1.0.1

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Zylon CI <ci@zylon.ai>
v1.0.1
2026-06-18 15:55:36 +02:00
rokieg77-alt
a64f1c9cf0 perf(prompts): use date-level current_date to preserve prompt-prefix caching (#2271)
create_chat_header_prompt rendered current_date with sub-second
datetime.now().isoformat() into the system prompt header, before the
guidelines and retrieved-context blocks. Since it changes every request,
the system-prompt prefix is never byte-stable, which defeats LLM
prompt-prefix caching (OpenAI automatic prefix caching, Anthropic
cache_control, local KV-cache reuse).

Use date-level granularity; the model only needs the calendar date for
relative-date reasoning and the prefix stays stable within a day.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 10:58:47 +02:00
Javier Martinez
4c0c500bbd fix: ensure that the publisher is ready to publish new messages (#2266)
* fix: ensure that the publisher is ready to publish new messages

* fix: dockerfile

* fix: clones

(cherry picked from commit bc0a77e050)

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-06-12 15:20:46 +02:00
dependabot[bot]
8ac84e3c35 chore(deps): bump astral-sh/setup-uv from 8.1.0 to 8.2.0 (#2268)
Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 8.1.0 to 8.2.0.
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](08807647e7...fac544c07d)

---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
  dependency-version: 8.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-10 09:06:59 +02:00
Javier Martinez
4021cf4e20 fix: use PGPT_HOME for local data, caches, and cleanup paths (#2267)
* feat: use default user folder

* docs: update references to local paths

* fix: windows

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* fix: align make test and wipe with PGPT_HOME paths

* fix: align wipe target with PGPT_HOME local_data

* fix: folders

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2026-06-10 09:06:02 +02:00
github-actions[bot]
cfa12bb4c8 chore(deps): update Claude specs and anthropic SDK (#2262)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-06-08 13:51:49 +02:00
Javier Martinez
4302bd629a fix: add missing docker database deps (#2264)
* fix: update deps names in dockerfile

* fix: missing prefix
2026-06-08 13:50:24 +02:00
JulianS1987
c120a90603 fix: make embedding API key optional for local OpenAI-compatible engines (#2261)
Ingesting documents with a local OpenAI-compatible embedding engine (Ollama,
vLLM, ...) failed with `openai.OpenAIError: Missing credentials` when no API
key was configured. The OpenAI-like embedding factory forwarded an empty
api_key straight to the OpenAI client, which rejects empty credentials at
request time.

Chat already tolerates a missing key (completions/openailike.py uses
`... or "default"`) and so does the embedding discovery probe
(`... or "no-key"`); only the embedding factory lacked the fallback, so model
discovery and chat worked while the first real embedding call (ingestion)
crashed.

Mirror the chat behaviour with a placeholder key on the local
OpenAI-compatible path. The strict api.openai.com path is unchanged and still
requires a real key.

Fixes #2260

Co-authored-by: Julian Siegrist <jsiegrist@immomio.de>
2026-06-08 08:09:15 +02:00
github-actions[bot]
7595d25a4c chore(main): release 1.0.0 (#2231)
* chore(main): release 1.0.0

* build: update uv.lock for 1.0.0

* docs: update OpenAPI spec for 1.0.0

---------

Co-authored-by: zylon-ci <dev+ci@zylon.ai>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Zylon CI <ci@zylon.ai>
v1.0.0
2026-06-03 17:25:13 +02:00
Daniel Gallego Vico
349cec5a64 Main README update 2026-06-03 17:12:04 +02:00
Javier Martinez
c438ba183f fix: citation/thinking prompts (#2257)
* fix: platform guidelines

(cherry picked from commit e341525b3ad5b3000bc5c6fd7b5f2d6ef90d8403)

* fix: remove dummy file

(cherry picked from commit 44b46758af7db803059831fb4bc57b15a486bf65)

* fix: tests

(cherry picked from commit 631d796175ab81f33f0e5bd264add3b1babf6743)
2026-06-03 17:00:13 +02:00
Javier Martinez
f0745cdcd4 style(ui): update favicon (#2258)
* style: update favicon

* fix: update favicon
2026-06-03 16:59:56 +02:00
Javier Martinez
80ff34b423 docs: add required libraries (#2256)
* docs: add instructions to install deps

* docs: update order
2026-06-03 15:44:59 +02:00
Iván Martínez
d1ac2e29ad feat: add markdown table renderer to the workbench ui (#2255) 2026-06-03 15:44:46 +02:00