merge: integrate upstream catalog with PM publication
Keep upstream's reviewed catalog as the only plugin name index. Catalog pins and custom update sources share staged PM validation. Publish code and dependencies with recovery after process death. Reject a concurrent enablement change before publishing disabled code. Use the manifest loader's supported version in the installer. Keep probe cooldowns for timeouts, not TLS failures that a CA change fixes. Preserve the backup, uninstall, browser and memory-provider repairs. Verified with the canonical runner on native Windows ARM64, real Git repositories, local TLS endpoints and UV dependency generations. Desktop catalog tests and both TypeScript checks pass. The full suite and native release builds were not run. No remote push.
This commit is contained in:
719
.gitignore
vendored
719
.gitignore
vendored
@@ -1,361 +1,364 @@
|
||||
|
||||
!apps/desktop/src/global.d.ts
|
||||
!apps/desktop/src/plugins/*/plugin.js
|
||||
!apps/desktop/src/vite-env.d.ts
|
||||
!hermes_cli/data/
|
||||
!hermes_cli/data/plugin_index.json
|
||||
# — ignore so `git status` stays clean and update's autostash skips them.
|
||||
# (launch-time stale-bytecode sweep). Runtime state, never a code change.
|
||||
# `data/` pattern above would otherwise swallow it.
|
||||
# `npm run sync-assets` (see web/package.json).
|
||||
# also created in-repo when an agent operates in this checkout). Plans, audit
|
||||
# and `hermes update`'s untracked autostash does not treat it as a local edit (#66189 / #54855).
|
||||
# automation-blueprints-index.json is a build artifact emitted by
|
||||
# bootstrap installer. It is Hermes-managed runtime state, never a code change —
|
||||
# Bundled community plugin index seed (shipped as package data) — the bare
|
||||
# by `hermes update` / launch-time self-heal. Runtime state, never a code change
|
||||
# by accident via 3a69e34702, removed in the #72002 salvage).
|
||||
# Checkout fingerprint the __pycache__ tree was last validated against
|
||||
# CLI config (may contain sensitive SSH paths)
|
||||
# committed to the repo root. See the hermes-release skill.
|
||||
# Cross-process web UI build lock (flock target, always empty)
|
||||
# cut (passed to `gh release create --notes-file`); the GitHub Release itself
|
||||
# Desktop demo-run scratch output (hermes writes demo/*.txt during recorded
|
||||
# Desktop/bootstrap install marker written into the managed checkout root by the
|
||||
# e.g. hermes-bots): plugin.js IS the source, not tsc output. No .tsx
|
||||
# every build).
|
||||
# EXCEPT bundled plain-ESM plugin entries (adopted SDK-consumer plugins,
|
||||
# git for the same reason as skills-index.json (large, generated, change
|
||||
# ignore it so `hermes update`'s `git stash push --include-untracked` does not
|
||||
# image-provider (fal.media) URL — they are NEVER committed to the repo. The
|
||||
# infographic-check CI job is what actually enforces this.
|
||||
# Installer-written method stamp in the managed checkout root (scripts/install.sh).
|
||||
# interrupted; consumed by launch-time recovery. Never commit it (was tracked
|
||||
# Interrupted-update breadcrumb + recovery lock written next to the shared venv
|
||||
# Local editor / agent tooling (machine-specific; keep in global config, not the repo)
|
||||
# logs, and per-session caches are never artifacts of the codebase.
|
||||
# Nix
|
||||
# No trailing slash: also matches node_modules SYMLINKS (worktrees often
|
||||
# Per-release changelog drafts. These exist only transiently during a release
|
||||
# Persistent dev sandbox dir (scripts/dev-sandbox.sh --persistent)
|
||||
# Playwright visual regression baselines — cached from main in CI, not committed
|
||||
# PR body is the archive. See the hermes-agent-dev skill's
|
||||
# PR infographics are rendered locally and embedded in PR descriptions via the
|
||||
# pr-infographic-workflow reference (storage rule + lapse #8 / #COMMIT-1).
|
||||
# Private keys
|
||||
# regenerated by scripts/tool_search_livetest.py. Never an artifact of the repo.
|
||||
# Release script temp files
|
||||
# Repo-root build/debug artifacts that must never be committed
|
||||
# resolves the stale .js OVER the .tsx — never track these)
|
||||
# Runtime marker written by hermes update when a lazy dependency refresh is
|
||||
# Runtime metadata only — never a code change. Ignore so `git status` stays clean
|
||||
# Sandbox dirs used by the install/update E2E (tests/install/). The suffix is
|
||||
# sibling exists, so the stale-shadow hazard above cannot apply.
|
||||
# sidestepped by an `infograficos/` directory (#70552). .gitignore is only
|
||||
# Skills Hub state (lives in ~/.hermes/skills/.hub/ at runtime, but just in case)
|
||||
# skills.json + skills-meta.json are build artifacts emitted by
|
||||
# slip into a commit and break `npm ci` on CI with ENOTDIR).
|
||||
# Spelling variants are listed because a single `infographic/` pattern was
|
||||
# stores the published notes. They are not a build artifact and must never be
|
||||
# symlink node_modules to the main checkout; the dir-only pattern let one
|
||||
# the first line of defence and cannot stop `git add -f` at all — the
|
||||
# the route name, so each route gets its own tree and two can run at once.
|
||||
# Tool Search live-test harness output — non-deterministic model transcripts,
|
||||
# treat it as a local edit and autostash it on every run (#38529).
|
||||
# tsc-emitted artifacts (a stray `tsc -b` compiles into src/, and vite then
|
||||
# walkthroughs). Throwaway artifacts, never part of the app.
|
||||
# Web UI assets — synced from @nous-research/ui at build time via
|
||||
# Web UI build output
|
||||
# website/scripts/extract-automation-blueprints.py during prebuild.
|
||||
# website/scripts/extract-skills.py during prebuild — keep them out of
|
||||
# Working directory for the Hermes Agent's session state (~/.hermes/ at runtime;
|
||||
#
|
||||
%SystemDrive%/
|
||||
*.pem
|
||||
*.ppk
|
||||
*.pyc*
|
||||
*.tsbuildinfo
|
||||
*-snapshots/
|
||||
.act-sandbox-agent.*
|
||||
.bytecode-fingerprint
|
||||
.bytecode-fingerprint.tmp
|
||||
.codex/
|
||||
.cursor/
|
||||
.direnv/
|
||||
.DS_Store
|
||||
.env
|
||||
.env.development
|
||||
.env.development.local
|
||||
.env.local
|
||||
.env.production.local
|
||||
.env.test
|
||||
.env.test.local
|
||||
.gemini/
|
||||
.hermes/
|
||||
.hermes-bootstrap-complete
|
||||
.hermes-docker/
|
||||
.hermes-sandbox/
|
||||
.hermes-sandbox-e2e*/
|
||||
.lazy-refresh-incomplete
|
||||
.mcp.json
|
||||
.nix-stamps/
|
||||
.notebooklm-cli-venv/
|
||||
.notebooklm-home/
|
||||
.notebooklm-playwright/
|
||||
.op.env
|
||||
.pip-cache/
|
||||
.pytest_cache/
|
||||
.pytest-cache/
|
||||
.release_notes.md
|
||||
.skills_prompt_snapshot.json
|
||||
.update-incomplete
|
||||
.update-incomplete.lock
|
||||
.uv-cache/
|
||||
.venv
|
||||
.venv/
|
||||
.vscode/
|
||||
.web_ui_build.lock
|
||||
.worktrees/
|
||||
.zed/
|
||||
/*.png.bak
|
||||
/.hermes-runtime/
|
||||
/.install_method
|
||||
/_pycache/
|
||||
/bin/
|
||||
/default.tar.gz
|
||||
/log.txt
|
||||
/sqlite_leak_fix.png
|
||||
/venv.old/
|
||||
/venv.stale.runtime-*/
|
||||
/venv/
|
||||
__pycache__/
|
||||
__pycache__/model_tools.cpython-310.pyc
|
||||
__pycache__/web_tools.cpython-310.pyc
|
||||
act/
|
||||
agent-browser/
|
||||
apps/desktop/build/
|
||||
apps/desktop/demo/
|
||||
apps/desktop/dist/
|
||||
apps/desktop/release/
|
||||
apps/desktop/src/**/*.d.ts
|
||||
apps/desktop/src/**/*.js
|
||||
apps/desktop/src/**/*.js.map
|
||||
apps/shared/src/**/*.d.ts
|
||||
apps/shared/src/**/*.js
|
||||
apps/shared/src/**/*.js.map
|
||||
browser-use/
|
||||
cli-config.yaml
|
||||
compose.hermes.local.yml
|
||||
config/mcporter.json
|
||||
data/
|
||||
data/*
|
||||
docs/superpowers/*
|
||||
environments/benchmarks/evals/
|
||||
examples/
|
||||
export*
|
||||
hermes-*/*
|
||||
hermes_agent.egg-info/
|
||||
hermes_cli/scripts/
|
||||
hermes_cli/tui_dist/*
|
||||
hermes_cli/web_dist/
|
||||
ignored/
|
||||
images/
|
||||
infografico/
|
||||
infograficos/
|
||||
infographic/
|
||||
infographics/
|
||||
logs/
|
||||
mini-swe-agent/
|
||||
models-dev-upstream/
|
||||
native/fts5_cjk/*.so
|
||||
node_modules
|
||||
opencode.json
|
||||
playwright-report/
|
||||
privvy*
|
||||
RELEASE_v*.md
|
||||
result
|
||||
run_datagen_kimik2-thinking.sh
|
||||
run_datagen_megascience_glm4-6.sh
|
||||
run_datagen_sonnet.sh
|
||||
source-data/*
|
||||
run_datagen_megascience_glm4-6.sh
|
||||
data/*
|
||||
# No trailing slash: also matches node_modules SYMLINKS (worktrees often
|
||||
# symlink node_modules to the main checkout; the dir-only pattern let one
|
||||
# slip into a commit and break `npm ci` on CI with ENOTDIR).
|
||||
node_modules
|
||||
browser-use/
|
||||
agent-browser/
|
||||
# Private keys
|
||||
*.ppk
|
||||
*.pem
|
||||
privvy*
|
||||
images/
|
||||
__pycache__/
|
||||
hermes_agent.egg-info/
|
||||
wandb/
|
||||
testlogs
|
||||
playwright-report/
|
||||
test-results/
|
||||
# Playwright visual regression baselines — cached from main in CI, not committed
|
||||
*-snapshots/
|
||||
|
||||
# CLI config (may contain sensitive SSH paths)
|
||||
cli-config.yaml
|
||||
|
||||
# Skills Hub state (lives in ~/.hermes/skills/.hub/ at runtime, but just in case)
|
||||
skills/.hub/
|
||||
ignored/
|
||||
.worktrees/
|
||||
environments/benchmarks/evals/
|
||||
|
||||
# Web UI build output
|
||||
hermes_cli/web_dist/
|
||||
# Cross-process web UI build lock (flock target, always empty)
|
||||
.web_ui_build.lock
|
||||
apps/desktop/build/
|
||||
apps/desktop/dist/
|
||||
|
||||
# tsc-emitted artifacts (a stray `tsc -b` compiles into src/, and vite then
|
||||
# resolves the stale .js OVER the .tsx — never track these)
|
||||
apps/desktop/src/**/*.js
|
||||
apps/desktop/src/**/*.js.map
|
||||
apps/desktop/src/**/*.d.ts
|
||||
# EXCEPT bundled plain-ESM plugin entries (adopted SDK-consumer plugins,
|
||||
# e.g. hermes-bots): plugin.js IS the source, not tsc output. No .tsx
|
||||
# sibling exists, so the stale-shadow hazard above cannot apply.
|
||||
!apps/desktop/src/plugins/*/plugin.js
|
||||
!apps/desktop/src/global.d.ts
|
||||
!apps/desktop/src/vite-env.d.ts
|
||||
|
||||
# Build/debug artifacts that must never be committed
|
||||
/log.txt
|
||||
/sqlite_leak_fix.png
|
||||
/*.png.bak
|
||||
*.tar.gz
|
||||
*.tgz
|
||||
apps/shared/src/**/*.js
|
||||
apps/shared/src/**/*.js.map
|
||||
apps/shared/src/**/*.d.ts
|
||||
apps/desktop/release/
|
||||
# stage-and-swap Desktop rebuild output (#86443); removed after the swap, but
|
||||
# a killed build must not leave the checkout dirty
|
||||
apps/desktop/.staging-*/
|
||||
*.tsbuildinfo
|
||||
|
||||
# Web UI assets — synced from @nous-research/ui at build time via
|
||||
# `npm run sync-assets` (see web/package.json).
|
||||
web/public/fonts/
|
||||
web/public/ds-assets/
|
||||
|
||||
# Release script temp files
|
||||
.release_notes.md
|
||||
mini-swe-agent/
|
||||
|
||||
# Nix
|
||||
.direnv/
|
||||
.nix-stamps/
|
||||
result
|
||||
website/static/api/skills-index.json
|
||||
# skills.json + skills-meta.json are build artifacts emitted by
|
||||
# website/scripts/extract-skills.py during prebuild — keep them out of
|
||||
# git for the same reason as skills-index.json (large, generated, change
|
||||
# every build).
|
||||
website/static/api/skills.json
|
||||
website/static/api/skills-meta.json
|
||||
# automation-blueprints-index.json is a build artifact emitted by
|
||||
# website/scripts/extract-automation-blueprints.py during prebuild.
|
||||
website/static/api/automation-blueprints-index.json
|
||||
models-dev-upstream/
|
||||
|
||||
# Local editor / agent tooling (machine-specific; keep in global config, not the repo)
|
||||
.codex/
|
||||
.cursor/
|
||||
.gemini/
|
||||
.zed/
|
||||
.mcp.json
|
||||
opencode.json
|
||||
config/mcporter.json
|
||||
|
||||
hermes_cli/tui_dist/*
|
||||
hermes_cli/scripts/
|
||||
docs/superpowers/*
|
||||
# Working directory for the Hermes Agent's session state (~/.hermes/ at runtime;
|
||||
# also created in-repo when an agent operates in this checkout). Plans, audit
|
||||
# logs, and per-session caches are never artifacts of the codebase.
|
||||
.hermes/
|
||||
|
||||
# Desktop/bootstrap install marker written into the managed checkout root by the
|
||||
# bootstrap installer. It is Hermes-managed runtime state, never a code change —
|
||||
# ignore it so `hermes update`'s `git stash push --include-untracked` does not
|
||||
# treat it as a local edit and autostash it on every run (#38529).
|
||||
.hermes-bootstrap-complete
|
||||
|
||||
# Persistent dev sandbox dir (scripts/dev-sandbox.sh --persistent)
|
||||
.hermes-sandbox/
|
||||
# Sandbox dirs used by the install/update E2E (tests/install/). The suffix is
|
||||
# the route name, so each route gets its own tree and two can run at once.
|
||||
.hermes-sandbox-e2e*/
|
||||
|
||||
# Interrupted-update breadcrumb + recovery lock written next to the shared venv
|
||||
# by `hermes update` / launch-time self-heal. Runtime state, never a code change
|
||||
# — ignore so `git status` stays clean and update's autostash skips them.
|
||||
.update-incomplete
|
||||
.update-incomplete.lock
|
||||
|
||||
# Checkout fingerprint the __pycache__ tree was last validated against
|
||||
# (launch-time stale-bytecode sweep). Runtime state, never a code change.
|
||||
.bytecode-fingerprint
|
||||
.bytecode-fingerprint.tmp
|
||||
|
||||
# Installer-written method stamp in the managed checkout root (scripts/install.sh).
|
||||
# Runtime metadata only — never a code change. Ignore so `git status` stays clean
|
||||
# and `hermes update`'s untracked autostash does not treat it as a local edit (#66189 / #54855).
|
||||
/.install_method
|
||||
|
||||
# Tool Search live-test harness output — non-deterministic model transcripts,
|
||||
# regenerated by scripts/tool_search_livetest.py. Never an artifact of the repo.
|
||||
|
||||
scripts/out/
|
||||
|
||||
# Per-release changelog drafts. These exist only transiently during a release
|
||||
# cut (passed to `gh release create --notes-file`); the GitHub Release itself
|
||||
# stores the published notes. They are not a build artifact and must never be
|
||||
# committed to the repo root. See the hermes-release skill.
|
||||
|
||||
# Desktop demo-run scratch output (hermes writes demo/*.txt during recorded
|
||||
# walkthroughs). Throwaway artifacts, never part of the app.
|
||||
|
||||
# PR infographics are rendered locally and embedded in PR descriptions via the
|
||||
# image-provider (fal.media) URL — they are NEVER committed to the repo. The
|
||||
# PR body is the archive. See the hermes-agent-dev skill's
|
||||
# pr-infographic-workflow reference (storage rule + lapse #8 / #COMMIT-1).
|
||||
#
|
||||
# Spelling variants are listed because a single `infographic/` pattern was
|
||||
# sidestepped by an `infograficos/` directory (#70552). .gitignore is only
|
||||
# the first line of defence and cannot stop `git add -f` at all — the
|
||||
# infographic-check CI job is what actually enforces this.
|
||||
# Runtime marker written by hermes update when a lazy dependency refresh is
|
||||
# interrupted; consumed by launch-time recovery. Never commit it (was tracked
|
||||
# by accident via 3a69e34702, removed in the #72002 salvage).
|
||||
|
||||
# Disposable profile created by scripts/probe_active_session_exclusivity.py
|
||||
.probe-home/
|
||||
skills/.hub/
|
||||
source-data/*
|
||||
temp_vision_images/
|
||||
test_durations.json
|
||||
testlogs
|
||||
test-results/
|
||||
tests/quick_test_dataset.jsonl
|
||||
tests/sample_dataset.jsonl
|
||||
tmp/
|
||||
wandb/
|
||||
web/public/ds-assets/
|
||||
web/public/fonts/
|
||||
website/static/api/automation-blueprints-index.json
|
||||
website/static/api/skills.json
|
||||
website/static/api/skills-index.json
|
||||
|
||||
!apps/desktop/src/global.d.ts
|
||||
!apps/desktop/src/plugins/*/plugin.js
|
||||
!apps/desktop/src/vite-env.d.ts
|
||||
!hermes_cli/data/
|
||||
# — ignore so `git status` stays clean and update's autostash skips them.
|
||||
# (launch-time stale-bytecode sweep). Runtime state, never a code change.
|
||||
# `data/` pattern above would otherwise swallow it.
|
||||
# `npm run sync-assets` (see web/package.json).
|
||||
# also created in-repo when an agent operates in this checkout). Plans, audit
|
||||
# and `hermes update`'s untracked autostash does not treat it as a local edit (#66189 / #54855).
|
||||
# automation-blueprints-index.json is a build artifact emitted by
|
||||
# bootstrap installer. It is Hermes-managed runtime state, never a code change —
|
||||
# Bundled community plugin index seed (shipped as package data) — the bare
|
||||
# by `hermes update` / launch-time self-heal. Runtime state, never a code change
|
||||
# by accident via 3a69e34702, removed in the #72002 salvage).
|
||||
# Checkout fingerprint the __pycache__ tree was last validated against
|
||||
# CLI config (may contain sensitive SSH paths)
|
||||
# committed to the repo root. See the hermes-release skill.
|
||||
# Cross-process web UI build lock (flock target, always empty)
|
||||
# cut (passed to `gh release create --notes-file`); the GitHub Release itself
|
||||
# Desktop demo-run scratch output (hermes writes demo/*.txt during recorded
|
||||
# Desktop/bootstrap install marker written into the managed checkout root by the
|
||||
# e.g. hermes-bots): plugin.js IS the source, not tsc output. No .tsx
|
||||
# every build).
|
||||
# EXCEPT bundled plain-ESM plugin entries (adopted SDK-consumer plugins,
|
||||
# git for the same reason as skills-index.json (large, generated, change
|
||||
# ignore it so `hermes update`'s `git stash push --include-untracked` does not
|
||||
# image-provider (fal.media) URL — they are NEVER committed to the repo. The
|
||||
# infographic-check CI job is what actually enforces this.
|
||||
# Installer-written method stamp in the managed checkout root (scripts/install.sh).
|
||||
# interrupted; consumed by launch-time recovery. Never commit it (was tracked
|
||||
# Interrupted-update breadcrumb + recovery lock written next to the shared venv
|
||||
# Local editor / agent tooling (machine-specific; keep in global config, not the repo)
|
||||
# logs, and per-session caches are never artifacts of the codebase.
|
||||
# Nix
|
||||
# No trailing slash: also matches node_modules SYMLINKS (worktrees often
|
||||
# Per-release changelog drafts. These exist only transiently during a release
|
||||
# Persistent dev sandbox dir (scripts/dev-sandbox.sh --persistent)
|
||||
# Playwright visual regression baselines — cached from main in CI, not committed
|
||||
# PR body is the archive. See the hermes-agent-dev skill's
|
||||
# PR infographics are rendered locally and embedded in PR descriptions via the
|
||||
# pr-infographic-workflow reference (storage rule + lapse #8 / #COMMIT-1).
|
||||
# Private keys
|
||||
# regenerated by scripts/tool_search_livetest.py. Never an artifact of the repo.
|
||||
# Release script temp files
|
||||
# Repo-root build/debug artifacts that must never be committed
|
||||
# resolves the stale .js OVER the .tsx — never track these)
|
||||
# Runtime marker written by hermes update when a lazy dependency refresh is
|
||||
# Runtime metadata only — never a code change. Ignore so `git status` stays clean
|
||||
# Sandbox dirs used by the install/update E2E (tests/install/). The suffix is
|
||||
# sibling exists, so the stale-shadow hazard above cannot apply.
|
||||
# sidestepped by an `infograficos/` directory (#70552). .gitignore is only
|
||||
# Skills Hub state (lives in ~/.hermes/skills/.hub/ at runtime, but just in case)
|
||||
# skills.json + skills-meta.json are build artifacts emitted by
|
||||
# slip into a commit and break `npm ci` on CI with ENOTDIR).
|
||||
# Spelling variants are listed because a single `infographic/` pattern was
|
||||
# stores the published notes. They are not a build artifact and must never be
|
||||
# symlink node_modules to the main checkout; the dir-only pattern let one
|
||||
# the first line of defence and cannot stop `git add -f` at all — the
|
||||
# the route name, so each route gets its own tree and two can run at once.
|
||||
# Tool Search live-test harness output — non-deterministic model transcripts,
|
||||
# treat it as a local edit and autostash it on every run (#38529).
|
||||
# tsc-emitted artifacts (a stray `tsc -b` compiles into src/, and vite then
|
||||
# walkthroughs). Throwaway artifacts, never part of the app.
|
||||
# Web UI assets — synced from @nous-research/ui at build time via
|
||||
# Web UI build output
|
||||
# website/scripts/extract-automation-blueprints.py during prebuild.
|
||||
# website/scripts/extract-skills.py during prebuild — keep them out of
|
||||
# Working directory for the Hermes Agent's session state (~/.hermes/ at runtime;
|
||||
#
|
||||
%SystemDrive%/
|
||||
*.pem
|
||||
*.ppk
|
||||
*.pyc*
|
||||
*.tsbuildinfo
|
||||
*-snapshots/
|
||||
.act-sandbox-agent.*
|
||||
.bytecode-fingerprint
|
||||
.bytecode-fingerprint.tmp
|
||||
.codex/
|
||||
.cursor/
|
||||
.direnv/
|
||||
.DS_Store
|
||||
.env
|
||||
.env.development
|
||||
.env.development.local
|
||||
.env.local
|
||||
.env.production.local
|
||||
.env.test
|
||||
.env.test.local
|
||||
.gemini/
|
||||
.hermes/
|
||||
.hermes-bootstrap-complete
|
||||
.hermes-docker/
|
||||
.hermes-sandbox/
|
||||
.hermes-sandbox-e2e*/
|
||||
.lazy-refresh-incomplete
|
||||
.mcp.json
|
||||
.nix-stamps/
|
||||
.notebooklm-cli-venv/
|
||||
.notebooklm-home/
|
||||
.notebooklm-playwright/
|
||||
.op.env
|
||||
.pip-cache/
|
||||
.pytest_cache/
|
||||
.pytest-cache/
|
||||
.release_notes.md
|
||||
.skills_prompt_snapshot.json
|
||||
.update-incomplete
|
||||
.update-incomplete.lock
|
||||
.uv-cache/
|
||||
.venv
|
||||
.venv/
|
||||
.vscode/
|
||||
.web_ui_build.lock
|
||||
.worktrees/
|
||||
.zed/
|
||||
/*.png.bak
|
||||
/.hermes-runtime/
|
||||
/.install_method
|
||||
/_pycache/
|
||||
/bin/
|
||||
/default.tar.gz
|
||||
/log.txt
|
||||
/sqlite_leak_fix.png
|
||||
/venv.old/
|
||||
/venv.stale.runtime-*/
|
||||
/venv/
|
||||
__pycache__/
|
||||
__pycache__/model_tools.cpython-310.pyc
|
||||
__pycache__/web_tools.cpython-310.pyc
|
||||
act/
|
||||
agent-browser/
|
||||
apps/desktop/build/
|
||||
apps/desktop/demo/
|
||||
apps/desktop/dist/
|
||||
apps/desktop/release/
|
||||
apps/desktop/src/**/*.d.ts
|
||||
apps/desktop/src/**/*.js
|
||||
apps/desktop/src/**/*.js.map
|
||||
apps/shared/src/**/*.d.ts
|
||||
apps/shared/src/**/*.js
|
||||
apps/shared/src/**/*.js.map
|
||||
browser-use/
|
||||
cli-config.yaml
|
||||
compose.hermes.local.yml
|
||||
config/mcporter.json
|
||||
data/
|
||||
data/*
|
||||
docs/superpowers/*
|
||||
environments/benchmarks/evals/
|
||||
examples/
|
||||
export*
|
||||
hermes-*/*
|
||||
hermes_agent.egg-info/
|
||||
hermes_cli/scripts/
|
||||
hermes_cli/tui_dist/*
|
||||
hermes_cli/web_dist/
|
||||
ignored/
|
||||
images/
|
||||
infografico/
|
||||
infograficos/
|
||||
infographic/
|
||||
infographics/
|
||||
logs/
|
||||
mini-swe-agent/
|
||||
models-dev-upstream/
|
||||
native/fts5_cjk/*.so
|
||||
node_modules
|
||||
opencode.json
|
||||
playwright-report/
|
||||
privvy*
|
||||
RELEASE_v*.md
|
||||
result
|
||||
run_datagen_kimik2-thinking.sh
|
||||
run_datagen_megascience_glm4-6.sh
|
||||
run_datagen_sonnet.sh
|
||||
source-data/*
|
||||
run_datagen_megascience_glm4-6.sh
|
||||
data/*
|
||||
# No trailing slash: also matches node_modules SYMLINKS (worktrees often
|
||||
# symlink node_modules to the main checkout; the dir-only pattern let one
|
||||
# slip into a commit and break `npm ci` on CI with ENOTDIR).
|
||||
node_modules
|
||||
browser-use/
|
||||
agent-browser/
|
||||
# Private keys
|
||||
*.ppk
|
||||
*.pem
|
||||
privvy*
|
||||
images/
|
||||
__pycache__/
|
||||
hermes_agent.egg-info/
|
||||
wandb/
|
||||
testlogs
|
||||
playwright-report/
|
||||
test-results/
|
||||
# Playwright visual regression baselines — cached from main in CI, not committed
|
||||
*-snapshots/
|
||||
|
||||
# CLI config (may contain sensitive SSH paths)
|
||||
cli-config.yaml
|
||||
|
||||
# Skills Hub state (lives in ~/.hermes/skills/.hub/ at runtime, but just in case)
|
||||
skills/.hub/
|
||||
ignored/
|
||||
.worktrees/
|
||||
environments/benchmarks/evals/
|
||||
|
||||
# Web UI build output
|
||||
hermes_cli/web_dist/
|
||||
# Cross-process web UI build lock (flock target, always empty)
|
||||
.web_ui_build.lock
|
||||
apps/desktop/build/
|
||||
apps/desktop/dist/
|
||||
|
||||
# tsc-emitted artifacts (a stray `tsc -b` compiles into src/, and vite then
|
||||
# resolves the stale .js OVER the .tsx — never track these)
|
||||
apps/desktop/src/**/*.js
|
||||
apps/desktop/src/**/*.js.map
|
||||
apps/desktop/src/**/*.d.ts
|
||||
# EXCEPT bundled plain-ESM plugin entries (adopted SDK-consumer plugins,
|
||||
# e.g. hermes-bots): plugin.js IS the source, not tsc output. No .tsx
|
||||
# sibling exists, so the stale-shadow hazard above cannot apply.
|
||||
!apps/desktop/src/plugins/*/plugin.js
|
||||
!apps/desktop/src/global.d.ts
|
||||
!apps/desktop/src/vite-env.d.ts
|
||||
|
||||
# Build/debug artifacts that must never be committed
|
||||
/log.txt
|
||||
/sqlite_leak_fix.png
|
||||
/*.png.bak
|
||||
*.tar.gz
|
||||
*.tgz
|
||||
apps/shared/src/**/*.js
|
||||
apps/shared/src/**/*.js.map
|
||||
apps/shared/src/**/*.d.ts
|
||||
apps/desktop/release/
|
||||
# stage-and-swap Desktop rebuild output (#86443); removed after the swap, but
|
||||
# a killed build must not leave the checkout dirty
|
||||
apps/desktop/.staging-*/
|
||||
*.tsbuildinfo
|
||||
|
||||
# Web UI assets — synced from @nous-research/ui at build time via
|
||||
# `npm run sync-assets` (see web/package.json).
|
||||
web/public/fonts/
|
||||
web/public/ds-assets/
|
||||
|
||||
# Release script temp files
|
||||
.release_notes.md
|
||||
mini-swe-agent/
|
||||
|
||||
# Nix
|
||||
.direnv/
|
||||
.nix-stamps/
|
||||
result
|
||||
website/static/api/skills-index.json
|
||||
# skills.json + skills-meta.json are build artifacts emitted by
|
||||
# website/scripts/extract-skills.py during prebuild — keep them out of
|
||||
# git for the same reason as skills-index.json (large, generated, change
|
||||
# every build).
|
||||
website/static/api/skills.json
|
||||
website/static/api/skills-meta.json
|
||||
# Plugin catalog JSON is generated from plugin-catalog/ during prebuild.
|
||||
website/static/api/plugins.json
|
||||
website/static/api/plugin-catalog.json
|
||||
website/static/api/plugins-meta.json
|
||||
# automation-blueprints-index.json is a build artifact emitted by
|
||||
# website/scripts/extract-automation-blueprints.py during prebuild.
|
||||
website/static/api/automation-blueprints-index.json
|
||||
models-dev-upstream/
|
||||
|
||||
# Local editor / agent tooling (machine-specific; keep in global config, not the repo)
|
||||
.codex/
|
||||
.cursor/
|
||||
.gemini/
|
||||
.zed/
|
||||
.mcp.json
|
||||
opencode.json
|
||||
config/mcporter.json
|
||||
|
||||
hermes_cli/tui_dist/*
|
||||
hermes_cli/scripts/
|
||||
docs/superpowers/*
|
||||
# Working directory for the Hermes Agent's session state (~/.hermes/ at runtime;
|
||||
# also created in-repo when an agent operates in this checkout). Plans, audit
|
||||
# logs, and per-session caches are never artifacts of the codebase.
|
||||
.hermes/
|
||||
|
||||
# Desktop/bootstrap install marker written into the managed checkout root by the
|
||||
# bootstrap installer. It is Hermes-managed runtime state, never a code change —
|
||||
# ignore it so `hermes update`'s `git stash push --include-untracked` does not
|
||||
# treat it as a local edit and autostash it on every run (#38529).
|
||||
.hermes-bootstrap-complete
|
||||
|
||||
# Persistent dev sandbox dir (scripts/dev-sandbox.sh --persistent)
|
||||
.hermes-sandbox/
|
||||
# Sandbox dirs used by the install/update E2E (tests/install/). The suffix is
|
||||
# the route name, so each route gets its own tree and two can run at once.
|
||||
.hermes-sandbox-e2e*/
|
||||
|
||||
# Interrupted-update breadcrumb + recovery lock written next to the shared venv
|
||||
# by `hermes update` / launch-time self-heal. Runtime state, never a code change
|
||||
# — ignore so `git status` stays clean and update's autostash skips them.
|
||||
.update-incomplete
|
||||
.update-incomplete.lock
|
||||
|
||||
# Checkout fingerprint the __pycache__ tree was last validated against
|
||||
# (launch-time stale-bytecode sweep). Runtime state, never a code change.
|
||||
.bytecode-fingerprint
|
||||
.bytecode-fingerprint.tmp
|
||||
|
||||
# Installer-written method stamp in the managed checkout root (scripts/install.sh).
|
||||
# Runtime metadata only — never a code change. Ignore so `git status` stays clean
|
||||
# and `hermes update`'s untracked autostash does not treat it as a local edit (#66189 / #54855).
|
||||
/.install_method
|
||||
|
||||
# Tool Search live-test harness output — non-deterministic model transcripts,
|
||||
# regenerated by scripts/tool_search_livetest.py. Never an artifact of the repo.
|
||||
|
||||
scripts/out/
|
||||
|
||||
# Per-release changelog drafts. These exist only transiently during a release
|
||||
# cut (passed to `gh release create --notes-file`); the GitHub Release itself
|
||||
# stores the published notes. They are not a build artifact and must never be
|
||||
# committed to the repo root. See the hermes-release skill.
|
||||
|
||||
# Desktop demo-run scratch output (hermes writes demo/*.txt during recorded
|
||||
# walkthroughs). Throwaway artifacts, never part of the app.
|
||||
|
||||
# PR infographics are rendered locally and embedded in PR descriptions via the
|
||||
# image-provider (fal.media) URL — they are NEVER committed to the repo. The
|
||||
# PR body is the archive. See the hermes-agent-dev skill's
|
||||
# pr-infographic-workflow reference (storage rule + lapse #8 / #COMMIT-1).
|
||||
#
|
||||
# Spelling variants are listed because a single `infographic/` pattern was
|
||||
# sidestepped by an `infograficos/` directory (#70552). .gitignore is only
|
||||
# the first line of defence and cannot stop `git add -f` at all — the
|
||||
# infographic-check CI job is what actually enforces this.
|
||||
# Runtime marker written by hermes update when a lazy dependency refresh is
|
||||
# interrupted; consumed by launch-time recovery. Never commit it (was tracked
|
||||
# by accident via 3a69e34702, removed in the #72002 salvage).
|
||||
|
||||
# Disposable profile created by scripts/probe_active_session_exclusivity.py
|
||||
.probe-home/
|
||||
skills/.hub/
|
||||
source-data/*
|
||||
temp_vision_images/
|
||||
test_durations.json
|
||||
testlogs
|
||||
test-results/
|
||||
tests/quick_test_dataset.jsonl
|
||||
tests/sample_dataset.jsonl
|
||||
tmp/
|
||||
wandb/
|
||||
web/public/ds-assets/
|
||||
web/public/fonts/
|
||||
website/static/api/automation-blueprints-index.json
|
||||
website/static/api/skills.json
|
||||
website/static/api/skills-index.json
|
||||
website/static/api/skills-meta.json
|
||||
# ── generated icon assets (see scripts/generate_icons.py) ──────────────────
|
||||
# Regenerated on demand by every consuming pipeline (website/desktop/
|
||||
|
||||
Reference in New Issue
Block a user