Files
hermes-agent/.gitignore
ethernet 612d542281 Merge remote-tracking branch 'origin/main' into ethie/pm-clean
# Conflicts:
#	.gitignore
#	Dockerfile
#	agent/onboarding.py
#	apps/desktop/electron/main.ts
#	apps/desktop/electron/pool-stop.ts
#	apps/desktop/src/components/model-picker.test.tsx
#	apps/desktop/src/store/updates.ts
#	apps/desktop/vite.config.ts
#	datagen-config-examples/run_browser_tasks.sh
#	docs/rca-ssl-cacert-post-git-pull.md
#	gateway/run.py
#	hermes_cli/backup.py
#	hermes_cli/credential_lifecycle.py
#	hermes_cli/dashboard_procs.py
#	hermes_cli/doctor_state.py
#	hermes_cli/env_loader.py
#	hermes_cli/gateway_windows.py
#	hermes_cli/local_runtime/endpoint.py
#	hermes_cli/psutil_android.py
#	hermes_cli/update_cmd.py
#	hermes_cli/update_cmd_windows.py
#	hermes_cli/web_routers/local_models.py
#	hermes_cli/web_server_config.py
#	hermes_cli/web_server_cron.py
#	plugins/memory/hindsight/__init__.py
#	plugins/memory/holographic/__init__.py
#	plugins/memory/honcho/cli.py
#	plugins/memory/mem0/__init__.py
#	plugins/platforms/google_chat/oauth.py
#	plugins/platforms/photon/adapter.py
#	scripts/ci/list_os_marked_tests.py
#	scripts/run_tests.sh
#	tests/agent/test_compression_stall_fallback.py
#	tests/agent/test_create_openai_client_ssl_verify.py
#	tests/gateway/test_google_chat_oauth_dependencies.py
#	tests/hermes_cli/conftest.py
#	tests/hermes_cli/test_cli_init.py
#	tests/hermes_cli/test_gateway_migrate_multiplex.py
#	tests/hermes_cli/test_psutil_android_extract.py
#	tests/hermes_cli/test_relaunch.py
#	tests/hermes_cli/test_update_check.py
#	tests/hermes_cli/test_update_handoff_desktop_rebuild.py
#	tests/hermes_cli/test_worktree_gc.py
#	tests/scripts/desktop_update/test_desktop_update_windows_python_handoff.py
#	tests/scripts/desktop_update/test_desktop_update_windows_retry_policy.py
#	tests/scripts/desktop_update/test_desktop_update_windows_timestamp.py
#	tests/scripts/install/test_install_autostash_conflict_recovery.py
#	tests/scripts/install/test_install_clone_throttle_fallback.py
#	tests/scripts/install/test_install_commit_pin_rollback.py
#	tests/scripts/install/test_install_diverged_update.py
#	tests/scripts/install/test_install_lockfile_churn.py
#	tests/scripts/install/test_install_macos_launcher.py
#	tests/scripts/install/test_install_no_initial_commit.py
#	tests/scripts/install/test_install_ps1_ascii_only.py
#	tests/scripts/install/test_install_ps1_browser_install.py
#	tests/scripts/install/test_install_ps1_managed_node_swap.py
#	tests/scripts/install/test_install_ps1_native_stderr_eap.py
#	tests/scripts/install/test_install_ps1_node_path_for_npm.py
#	tests/scripts/install/test_install_ps1_python_fallback_venv.py
#	tests/scripts/install/test_install_ps1_resolver_strictmode.py
#	tests/scripts/install/test_install_ps1_uv_install_fallback.py
#	tests/scripts/install/test_install_ps1_uv_powershell_host.py
#	tests/scripts/install/test_install_ps1_venv_process_tree.py
#	tests/scripts/install/test_install_ps1_venv_recreate_safety.py
#	tests/scripts/install/test_install_ps1_venv_rename_abort.py
#	tests/scripts/install/test_install_ps1_venv_transaction_boundary.py
#	tests/scripts/install/test_install_ps1_web_server_syntax_probe.py
#	tests/scripts/install/test_install_scripts_computer_use.py
#	tests/scripts/install/test_install_sh_acp_launcher.py
#	tests/scripts/install/test_install_sh_bootstrap_marker.py
#	tests/scripts/install/test_install_sh_browser_install.py
#	tests/scripts/install/test_install_sh_install_method_stamp.py
#	tests/scripts/install/test_install_sh_node_deps_failure.py
#	tests/scripts/install/test_install_sh_node_deps_workspaces.py
#	tests/scripts/install/test_install_sh_node_global_prefix.py
#	tests/scripts/install/test_install_sh_node_npm_check.py
#	tests/scripts/install/test_install_sh_node_prerelease.py
#	tests/scripts/install/test_install_sh_node_probe.py
#	tests/scripts/install/test_install_sh_node_tarball_without_xz.py
#	tests/scripts/install/test_install_sh_pythonpath_sanitization.py
#	tests/scripts/install/test_install_sh_reuse_supported_python.py
#	tests/scripts/install/test_install_sh_root_fhs_uv_python_path.py
#	tests/scripts/install/test_install_sh_setup_wizard_tty_probe.py
#	tests/scripts/install/test_install_sh_symlink_stomp.py
#	tests/scripts/install/test_install_sh_termux_network_prereqs.py
#	tests/scripts/install/test_install_sh_termux_python_bounds.py
#	tests/scripts/install/test_install_sh_uv_lock_config.py
#	tests/scripts/install/test_install_unmerged_index.py
#	tests/scripts/test_run_tests_parallel.py
#	tests/test_managed_runtime_resolution.py
#	tests/test_project_metadata.py
#	tests/tools/test_browser_use_cli.py
#	tests/tools/test_tts_pythonpath_fallback.py
#	tests/tui_gateway/test_hosted_room_driver_runtime.py
#	tests/tui_gateway/test_tui_gateway_server.py
#	tools/lazy_deps.py
#	tools/voice_mode.py
#	uv.lock
#	website/docs/developer-guide/macos-bundle-updates.md
#	website/docs/developer-guide/pm-audit-status.md
#	website/docs/developer-guide/shared-bundle-builds.md
#	website/docs/developer-guide/source-update-completion.md
#	website/docs/developer-guide/stable-releases.md
2026-09-14 15:38:34 -04:00

399 lines
14 KiB
Plaintext

!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.*
.build/
.cache/
.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/
/pm/.lock.json.lock
/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/*
MagicMock/
# 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
install-stamp.json
# 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/
evals/tool_search/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/
# installer/web prebuild via scripts/generate-icons.mjs). Sources of truth:
# assets/nous-girl-*.svg + assets/backgrounds/.
assets/icon-master.svg
assets/icon-master-dark.svg
apps/desktop/assets/icon.png
apps/desktop/assets/icon.ico
apps/desktop/assets/icon.icns
apps/desktop/assets/icon-dark.png
apps/desktop/assets/icon-dark.ico
apps/desktop/assets/icon-dark.icns
apps/desktop/assets/appx/*.png
apps/desktop/public/apple-touch-icon.png
apps/desktop/public/nous-girl.png
apps/desktop/public/nous-girl-dark.png
apps/bootstrap-installer/src-tauri/icons/*.png
apps/bootstrap-installer/src-tauri/icons/icon.ico
apps/bootstrap-installer/src-tauri/icons/icon.icns
apps/bootstrap-installer/public/nous-girl.png
website/static/img/logo.png
website/static/img/logo-dark.png
website/static/img/nous-logo.png
website/static/img/nous-logo-dark.png
website/static/img/favicon-16x16.png
website/static/img/favicon-32x32.png
website/static/img/apple-touch-icon.png
website/static/img/favicon.ico
website/static/img/favicon.svg
web/public/favicon.ico