Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
21d4c66
docs: refresh README with product demo and guided platform tour
Oct 1, 2026
7dda927
docs: remove outdated UI captures and replace their references
Oct 1, 2026
829f19c
docs: add matching agent builder screenshots
Oct 1, 2026
1fb0174
docs: add skills library and procedure screenshots
Oct 1, 2026
bc3013a
docs: add context library and glossary screenshots
Oct 1, 2026
f98b931
docs: add knowledge base and collection screenshots
Oct 1, 2026
5cce0fc
docs: position AgenticOS as the open-source agent layer for teams
Oct 1, 2026
b93452f
docs: add first-task walkthrough and team data boundaries
Oct 1, 2026
8b0bf15
docs: add current integration artifact and approval screenshots
Oct 1, 2026
d76c6d5
docs: present README as a visual feature tour
Oct 1, 2026
5547a00
docs: highlight MCP integration scale and Activity observability
Oct 1, 2026
173f164
docs: focus README on team outcomes and light product screenshots
Oct 1, 2026
1325b26
docs: add Vstorm production support and attribution
Oct 1, 2026
f5d4dfa
docs: show weekly routine scheduling in README
Oct 1, 2026
eb5e05e
docs: give MCP integration catalog full-width visibility
Oct 1, 2026
b1f51d4
docs: highlight agents in team communication channels
Oct 1, 2026
3a6fc33
docs: shorten demo and add animated mobile preview
Oct 1, 2026
cfe5634
docs: alternate full-width feature highlights with compact rows
Oct 1, 2026
b2fd2a2
docs: restore video player with optional GIF fallback
Oct 1, 2026
827a1c7
docs: use GitHub-allowed host for embedded video
Oct 1, 2026
6ff5ac2
docs: restore supported attachment player and label shorter cut
Oct 1, 2026
1b1f36c
docs: embed uploaded shortened demo
Oct 1, 2026
221f7c1
docs: highlight product benefits and team channel logos
Oct 1, 2026
b985458
docs: improve screenshot sizing and add window framing
Oct 1, 2026
ab4d84a
docs(readme): restore the OS case and lead with the quick start
Oct 2, 2026
805c4f6
docs(readme): show what the demo does and add an API call
Oct 2, 2026
42beb83
docs(readme): answer whether it runs entirely on-premises
Oct 2, 2026
21b00df
docs: position AgenticOS as Sovereign Agentic AI Layer
Oct 2, 2026
67ed49f
docs: lead feature gallery with full-width agent builder
Oct 2, 2026
d37a5ef
docs: focus positioning on shared team agents and qualify control claims
Oct 2, 2026
a201a63
docs: remove default credentials from readmes
Oct 2, 2026
804b691
docs: showcase connected apps with refreshed brand tiles
Oct 2, 2026
79a4492
docs: show the product before setup details and integrations
Oct 2, 2026
93c99b9
docs: simplify readme capabilities and getting started
Oct 2, 2026
c71eaa8
docs: replace integration tiles with compact animated banner
Oct 2, 2026
c190bda
docs: remove animated video fallback from readmes
Oct 2, 2026
b0191be
docs: replace integration animation with selected glass collage
Oct 2, 2026
9d2ba38
docs: link READMEs to published documentation
Oct 2, 2026
3ed0d57
docs: showcase team workflows with crisp product captures
Oct 2, 2026
1ade60d
docs: improve README navigation and demo visibility
Oct 3, 2026
4822c05
docs: feature a light sales dashboard artifact
Oct 3, 2026
f87f30e
docs: add emoji to README section headings
Oct 3, 2026
aad763e
docs: add ten README proposals for review
Oct 3, 2026
2676d7e
docs: use the sign-in and sizing graphics in two README proposals
Oct 3, 2026
ae3e60f
docs: add a combined README proposal built from the current README an…
Oct 3, 2026
b17b4bf
docs: lead the combined README with the architecture and an integrati…
Oct 3, 2026
33c0a5a
docs: draw the departments in the README diagram with CC0 avatars
Oct 3, 2026
07757e0
docs: show the README key figures as a designed band
Oct 3, 2026
7c2a496
docs: redraw the README key figures as cards with their marks
Oct 3, 2026
6fc9248
docs: describe every README graphic in text and define AgenticOS up f…
Oct 3, 2026
17d450e
docs: add an FAQ with sourced answers to the combined README
Oct 3, 2026
fc2d8e4
docs: merge the developer path into one section and show the two sove…
Oct 3, 2026
f1eff6c
docs: README graphics drop the slide headings they repeated
Oct 3, 2026
47e5caf
docs: re-render README graphics from the deck at projection-size type
Oct 3, 2026
f79d4c6
docs: drop a sentence the developer section said twice
Oct 3, 2026
b91a39a
docs: README graphics follow the deck's contrast pass
Oct 3, 2026
ea3fdd5
docs: replace the presentation with the guided introduction deck
Oct 3, 2026
501294d
docs: open the guided tour from the PR branch in the combined README
Oct 3, 2026
30e3325
docs: let the deck run where its address cannot be rewritten
Oct 3, 2026
5aa6818
docs: sharpen the combined README hero, thesis and engine
DEENUU1 Oct 5, 2026
3006f28
docs: make the combined proposal the root README
DEENUU1 Oct 5, 2026
9e7fa3b
test(docs): expect the emoji-led quick-start anchor again
DEENUU1 Oct 5, 2026
76abd2b
docs: publish a 14-slide introduction and move the tour to /presentat…
DEENUU1 Oct 5, 2026
5bc8795
build: check both presentations in make presentation
DEENUU1 Oct 5, 2026
25ba3f0
docs: follow the glossary for run and vault in the Polish README
DEENUU1 Oct 5, 2026
7ea1461
docs: lead the README hero with the Sovereign Agentic AI Layer label
DEENUU1 Oct 5, 2026
0f405e7
docs: show the product before the diagrams in the README
DEENUU1 Oct 5, 2026
0600810
docs: restyle both presentations in Instrument Serif and DM Sans on w…
DEENUU1 Oct 5, 2026
cf788c9
docs: open See it in action with the 45-second AgenticOS intro
DEENUU1 Oct 5, 2026
830e8a1
docs: show the marks of the technologies and providers in both presen…
DEENUU1 Oct 5, 2026
7604b65
docs: check the sender of presenter messages and build the slide list…
DEENUU1 Oct 5, 2026
17b46e2
build: let the frontend audit pass braces GHSA-vfj7-8cjw-p6xm until a…
DEENUU1 Oct 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 30 additions & 12 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -543,9 +543,18 @@ audit:
# target was added: `next` and `postcss` raised, `nanoid` and `js-yaml` pinned
# forward through their parents.
AUDIT_LEVEL ?= high
# The one other case is a finding with no fixed release anywhere in its chain: it
# is named here with the path it arrives by and the condition that removes it,
# and the audit ignores that advisory only.
# GHSA-vfj7-8cjw-p6xm (CVE-2026-93687): braces <= 3.0.3 has no patched release.
# It reaches the tree only through eslint-config-next > @next/eslint-plugin-next
# > fast-glob > micromatch, a lint-time dependency that the built console does
# not ship. Remove when braces publishes a fix or @next/eslint-plugin-next
# drops fast-glob. bun matches advisories by their GHSA id, not the CVE.
AUDIT_IGNORE ?= GHSA-vfj7-8cjw-p6xm

audit-frontend:
cd frontend && bun audit --audit-level=$(AUDIT_LEVEL)
cd frontend && bun audit --audit-level=$(AUDIT_LEVEL) $(addprefix --ignore=,$(AUDIT_IGNORE))

# A CycloneDX inventory of what the *source tree* declares, written to `sbom/`.
#
Expand Down Expand Up @@ -708,19 +717,28 @@ docs-slug-check:
uv run --directory backend --group docs pytest -q \
tests/test_check_docs_i18n.py::test_the_slug_derivation_matches_the_renderer

# The client presentation is `docs/presentation/index.html` - a published page,
# and the only copy. This renders the same file to a PDF for sending, and checks
# it. The PDF is not committed: at 6 MB it is over the large-file limit, and it
# is a derivative of a file that is already here.
# Two decks are published pages, and the only copies: the 14-slide open-source
# introduction at `docs/presentation/index.html` (served at /presentation/) and the
# 44-slide product tour at `docs/presentation/tour/index.html` (/presentation/tour/),
# which shares the introduction's `media/` and `fonts/`. Both are guided decks that
# show one slide at a time, so printing either page gives one page, not a deck.
# This checks what the README promises - each deck's slide count - and that every
# file a deck names resolves. A PDF of every step is built from a deck's source with
# the content-deck skill (`guided.py DECK --pdf`), not from these pages.
#
# DECK_TOOLS points at the `deck-build` skill, which is not in this repository.
DECK_TOOLS ?= $(HOME)/.claude/skills/deck-build/tools/deck
DECK_PDF ?= $(HOME)/notes/001_System/Assets/agenticos-deck/out/agenticos-client-deck.pdf
# CONTENT_OS points at the content toolkit behind the `content-deck` skill, which is
# not in this repository; `scripts/gen` runs its tools with the toolkit's Python.
CONTENT_OS ?= $(HOME)/PycharmProjects/content-os
PRESENTATIONS := docs/presentation/index.html:14 docs/presentation/tour/index.html:44
presentation:
@test -d "$(DECK_TOOLS)" || { echo "deck-build skill not found at $(DECK_TOOLS)"; exit 1; }
python3 "$(DECK_TOOLS)/finalise.py" docs/presentation/index.html
python3 "$(DECK_TOOLS)/build.py" pdf docs/presentation/index.html -o "$(DECK_PDF)"
python3 "$(DECK_TOOLS)/verify.py" deck "$(DECK_PDF)" --expect-slides 20
@test -x "$(CONTENT_OS)/scripts/gen" || { echo "content toolkit not found at $(CONTENT_OS); set CONTENT_OS="; exit 1; }
@for entry in $(PRESENTATIONS); do \
deck=$${entry%%:*}; expected=$${entry##*:}; \
found=$$(grep -c '<section class="slide' "$$deck"); \
test "$$found" -eq "$$expected" || { echo "$$deck: $$found slides, expected $$expected"; exit 1; }; \
echo "$$deck: $$found slides"; \
"$(CONTENT_OS)/scripts/gen" tools/deck/verify.py assets "$$deck" || exit 1; \
done

# Migrations against a real database, forwards and back. The only way to know a
# backfill or a check constraint actually works.
Expand Down
676 changes: 245 additions & 431 deletions README.de.md

Large diffs are not rendered by default.

676 changes: 246 additions & 430 deletions README.es.md

Large diffs are not rendered by default.

653 changes: 244 additions & 409 deletions README.md

Large diffs are not rendered by default.

667 changes: 246 additions & 421 deletions README.pl.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion SECURITY.de.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Das Bedrohungsmodell, die Datenfluss-Erklärung (was das Deployment verlässt un
an wen), was wo verschlüsselt ist, und die Kontrollmatrix — jede Kontrolle auf den
Mechanismus abgebildet, der sie erfüllt, und auf den Test, der sie hält — stehen
in einer einzigen Kopie auf der Seite
[Sicherheit](https://vstorm-co.github.io/agenticos/security/) (`docs/security.md`).
[Sicherheit](https://vstorm-co.github.io/agenticos/de/security/) (`docs/security.md`).
Diese Datei behält nur die zwei Dinge, für die man die `SECURITY.md` eines
Repositorys liest: wie man eine Schwachstelle meldet, oben, und die
Härtungs-Checkliste für die Produktion, unten. Wo personenbezogene Daten liegen
Expand Down
2 changes: 1 addition & 1 deletion SECURITY.es.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ El modelo de amenazas, la declaración de flujo de datos (qué sale del deployme
y hacia quién), qué se cifra y dónde, y la matriz de controles — cada control
mapeado al mecanismo que lo satisface y al test que lo sostiene — viven en una
sola copia en la página
[Seguridad](https://vstorm-co.github.io/agenticos/security/) (`docs/security.md`).
[Seguridad](https://vstorm-co.github.io/agenticos/es/security/) (`docs/security.md`).
Este archivo conserva solo las dos cosas para las que se lee el `SECURITY.md` de
un repositorio: cómo informar de una vulnerabilidad, arriba, y la lista de
endurecimiento para producción, abajo. Dónde viven los datos personales y qué
Expand Down
2 changes: 1 addition & 1 deletion SECURITY.pl.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Celujemy w potwierdzenie w ciągu 48h i wypuszczenie poprawki w ciągu 7 dni dla
Model zagrożeń, opis przepływu danych (co opuszcza wdrożenie i do kogo), co jest
gdzie szyfrowane oraz macierz kontroli — każda kontrola zmapowana na mechanizm,
który ją realizuje, i na test, który trzyma ją w mocy — żyją w jednej kopii na
stronie [Bezpieczeństwo](https://vstorm-co.github.io/agenticos/security/)
stronie [Bezpieczeństwo](https://vstorm-co.github.io/agenticos/pl/security/)
(`docs/security.md`). Ten plik zostawia tylko dwie rzeczy, po które sięga się do
`SECURITY.md` w repozytorium: jak zgłosić podatność, powyżej, i produkcyjną listę
kontrolną hardeningu, poniżej. Gdzie leżą dane osobowe i co obejmuje usunięcie,
Expand Down
29 changes: 28 additions & 1 deletion backend/tests/test_check_docs_i18n.py
Original file line number Diff line number Diff line change
Expand Up @@ -374,7 +374,7 @@ def test_a_root_translation_of_a_deleted_file_is_orphaned(repository: Path) -> N


def test_the_github_slug_answers_the_fragments_the_readme_links_to() -> None:
"""GitHub's rule, checked against the six fragments `README.md` already uses.
"""GitHub's rule, checked against the fragments `README.md` links to.

The one that matters is `#-quick-start`: its heading opens on an emoji, and
the space the emoji leaves behind becomes a leading hyphen. Derive the anchor
Expand Down Expand Up @@ -440,3 +440,30 @@ def test_the_guard_asks_about_every_locale_the_site_builds() -> None:
)
built = {language["locale"] for language in i18n["languages"]}
assert built == {docs_i18n.DEFAULT_LOCALE, *docs_i18n.LOCALES}


def test_published_documentation_links_follow_the_readme_locale(docs: Path) -> None:
for name in ("index.md", "mcp.md", "about/index.md"):
page = docs / name
page.parent.mkdir(parents=True, exist_ok=True)
page.write_text("# Page\n", encoding="utf-8")
page.with_name(f"{page.stem}.pl.md").write_text("# Strona\n", encoding="utf-8")
readme = docs.parent / "README.md"
base = "https://vstorm-co.github.io/agenticos/"
targets = [
base,
base + "mcp/#tools",
base + "about/",
base + "pl/mcp/",
base + "missing/",
"https://example.com/mcp/",
]
readme.write_text("\n".join(f"[Link]({url})" for url in targets), encoding="utf-8")
assert docs_i18n.linked_targets(readme, into="pl") == [
base + "pl/",
base + "pl/mcp/#tools",
base + "pl/about/",
base + "pl/mcp/",
base + "missing/",
"https://example.com/mcp/",
]
11 changes: 11 additions & 0 deletions docs/assets/channels/ATTRIBUTION.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
Channel logo tiles

Slack now uses the official full-color SVG linked from slack.com, replacing
the previous monochrome Font Awesome glyph. Mattermost and Telegram retain
their Simple Icons glyphs (CC0 1.0). Light and dark frames match the other
application tiles used in the README.

Full sources, attribution and connection scope:
../integrations/ATTRIBUTION.txt
Source and output hashes:
../integrations/manifest.json
8 changes: 8 additions & 0 deletions docs/assets/channels/mattermost-dark.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions docs/assets/channels/mattermost.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
24 changes: 24 additions & 0 deletions docs/assets/channels/slack-dark.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
24 changes: 24 additions & 0 deletions docs/assets/channels/slack.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions docs/assets/channels/telegram-dark.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions docs/assets/channels/telegram.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed docs/assets/desktop_no_more_caramba_pet.png
Binary file not shown.
Loading
Loading