This repository is the host-level control plane for fleets of Hermes Agent
nodes. The active product surface is plugins/wasm-agent: a PWA/backend/native
bridge lane for WASM Agent Native and Space OS evolution.
| Field | Value |
|---|---|
| Project | Hermes Orchestrator |
| Primary role | Fleet lifecycle, host automation, plugin propagation, observability, and runtime guardrails |
| Active product boundary | plugins/wasm-agent |
| Native shells | native/windows, native/android, plus shared native contract in native/ |
| Context engine | AGENTS.md plus docs/context/ plus nearest child AGENTS.md/README.md |
| Guard | Binding rule |
|---|---|
| Production backend | https://wa.colmeio.com |
| Production Windows native app URL | https://wa.colmeio.com/home?native=electron |
| Dev origins | 127.0.0.1:8877, localhost, 0.0.0.0, emulator origins, and local PWA ports are dev-only and forbidden in production claims. |
| Windows proof | Never claim the installer or login persistence is fixed from source tests, build success, or win-unpacked. |
| Required Windows package proof | Final extracted NSIS installer and installed app.asar verification. |
| Required Windows login proof | Installed app, Google login, full close/reopen, https://wa.colmeio.com/home?native=electron, authCookie.hasWaUid: true, durable cookie expiration metadata, and authenticated /auth/session. |
| Android proof | APK package proof is not OAuth/runtime proof; horc simulate android or copied --local-report evidence must name the behavior proven. |
| Roadmap truth | Future/proposal docs never override runtime docs, code, or proof artifacts. |
| Dirty worktree | Do not remove unrelated user work or dirty changes. |
| Need | Read first |
|---|---|
| Global rules and area map | AGENTS.md, this file, docs/context/README.md, docs/context/MAP.md |
| Claim status and proof | docs/context/CLAIMS.md, docs/context/VERIFY.md |
| Context review loop | docs/context/REVIEW.md |
| Active PWA/backend/native bridge | plugins/wasm-agent/AGENTS.md, then plugins/wasm-agent/README.md |
| Windows Electron/NSIS work | native/AGENTS.md, native/NATIVE_SHELL_CONTRACT.md, native/windows/AGENTS.md, native/windows/README.md |
| Android APK/WebView/voice work | native/AGENTS.md, native/NATIVE_SHELL_CONTRACT.md, native/android/AGENTS.md, native/android/README.md |
| Long-running plans | docs/roadmap/AGENTS.md, docs/roadmap/README.md, relevant track README |
| Public host automation | scripts/public/AGENTS.md, scripts/public/README.md, docs/commands/horc.md |
Read the nearest child AGENTS.md before editing a durable boundary. Closest
child context owns local details; root context owns production safety, claim
status rules, verification standards, and routing.
Canonical route table: docs/context/MAP.md.
| Area | Owns | Read first | Status | Verify |
|---|---|---|---|---|
/local |
Repo-wide safety, routing, lifecycle, docs-sync rules | AGENTS.md, README.md, docs/context/README.md |
verified | `rg -n "Production backend |
docs/context |
Context protocol, route map, claims, verification, review loop, self-improving harness | docs/context/README.md, docs/context/HARNESS.md |
verified | docs smell scan and python3 tools/context/check-harness-promises.py |
plugins/wasm-agent |
PWA, backend, account state, native bridge, release feed, Frontier | plugins/wasm-agent/AGENTS.md |
implemented-unverified | horc simulate web; focused tests under plugins/wasm-agent/tests |
native |
Shared native shell policy across platforms | native/AGENTS.md, native/NATIVE_SHELL_CONTRACT.md |
implemented-unverified | platform-specific package/runtime proof |
native/windows |
Electron shell, NSIS installer, installed-app verification | native/windows/AGENTS.md |
implemented-unverified | cd native/windows/src && npm run verify:win-installer -- <installer> plus installed-app PowerShell proof |
native/android |
APK shell, WebView/native bridge, voice wake, sideload/update metadata | native/android/AGENTS.md |
implemented-unverified | apksigner verify --verbose <apk> plus horc simulate android |
docs/roadmap |
Future/proposal/staged work | docs/roadmap/AGENTS.md |
verified | docs consistency pass |
scripts/public |
Git-tracked host automation and horc helpers |
scripts/public/AGENTS.md |
implemented-unverified | focused horc smoke command |
plugins |
Plugin package root | plugins/README.md |
verified | read owning plugin docs |
scripts |
Public/private script split | scripts/README.md |
verified | read scripts/public or scripts/private docs |
hermes-agent |
Upstream Hermes Agent checkout | hermes-agent/AGENTS.md |
unknown | prefer extension layers before core edits |
Use the claim statuses defined in docs/context/README.md: verified,
implemented-unverified, proposal, future, stale, and unknown.
Detailed registry: docs/context/CLAIMS.md.
| Claim | Status | Proof or missing proof |
|---|---|---|
Configured production native target is cloud-only at https://wa.colmeio.com |
verified | Root guard, native defaults, Android sidecar, release feed; config evidence only |
| Self-improving harness contract exists for repeated inference | verified | docs/context/HARNESS.md; docs/context/HARNESS_PROMISES.json; python3 tools/context/check-harness-promises.py |
Windows release feed points at win-x64-20260613T003310Z |
verified feed | plugins/wasm-agent/public/native/releases/latest.json; https://wa.colmeio.com/native/releases/latest.json; reports/windows/latest/windows-release-feed-check.json; package/runtime proof still required |
| Windows login persistence fix status | implemented-unverified | Must not be claimed fixed until installed-app proof passes |
Android build android-universal-20260612T131155Z exists |
implemented-unverified | native/android/release/release-manifest.json and SHA; apksigner unavailable in this session |
| Latest Android simulation report proves voice wake fixture behavior | verified | reports/sim/android/latest/summary.md; does not prove current APK OAuth |
| Roadmap current-software claims | unknown | Roadmap docs are proposal/future/status unless reconciled with code and product docs |
| Behavior | Command or proof |
|---|---|
| Context sync, harness registry, and smell scan | python3 tools/context/check-context-sync.py; python3 tools/context/check-harness-promises.py; see docs/context/VERIFY.md |
| Fresh-agent structured test | See docs/context/REVIEW.md |
| PWA/browser behavior | horc simulate web |
| wasm-agent focused checks | /local/plugins/wasm-agent/scripts/doctor.sh or focused tests under plugins/wasm-agent/tests |
| Windows final installer extraction | cd native/windows/src && npm run verify:win-installer -- <final-nsis-installer> |
| Windows release feed consistency | python3 tools/windows/check-windows-release-feed.py |
| Native evolution source/feed checks | node plugins/wasm-agent/tests/native_release_feed.test.js; cd native/windows/src && npm run test:windows-hot-ops; python3 tools/context/check-context-sync.py |
| Windows installed login persistence | native\windows\scripts\verify-installed-app.ps1 -Launch -InteractiveLogin on Windows |
| Windows hot-op shell preflight | python3 tools/windows/prove-hot-shell.py; then python3 tools/doctor/wasm-agent-doctor.py; then Hermes dry-run/debug proof. |
| Android package | apksigner verify --verbose native/android/release/WASM-Agent-arm64.apk plus forbidden-origin scan |
| Android runtime | horc simulate android or horc simulate android --local-report <path> |
| Public script smoke | horc status, horc build doctor, or the script's focused doctor/help mode |
Build success is not runtime proof. Missing proof demotes the claim.
Before code changes, agents must reflect on whether the same correct observable result can be reached with fewer phases, listeners, renders, reflows, recalculations, bridge calls, polling loops, rebuilds, or runtime cycles. The shortest correct path is the default architecture.
If that reflection finds duplicated state, avoidable lifecycle work, redundant event listeners, layout thrash, unnecessary abstraction, bloated control flow, or delayed feedback, simplify it before editing or include the simplification in the edit. Extra work must be justified by correctness, safety, compatibility, or observability that shortens future proof/debug loops.
The product target is a fluid, native, game-like app feel across devices. Code that works but adds avoidable latency, jitter, duplicate rendering, late UI feedback, or unnecessary runtime work is incomplete until the waste is removed or explicitly justified.
Default new product features to the shared PWA/runtime layer first. Prefer browser APIs, WASM, WebGPU/WebNN where available, downloadable model/runtime artifacts, service-worker/browser cache, IndexedDB, and static metadata with version and SHA validation before adding native shell code.
Native shell branching is an exception, not the default. It is allowed only when an OS/browser constraint makes the feature impossible or unreliable in the PWA lane, such as background wake-word listeners, OS services, native permissions, package identity, signing, foreground services, accessibility, media projection, or hardware/OS primitives that the browser cannot provide. When native is used, keep it as a minimal primitive and keep product behavior, model selection, diagnostics, and UI policy in the shared runtime whenever possible.
For AI/audio/model features, the first production design must ask whether an on-demand WASM/WebGPU path can run locally across web, Android WebView, Windows Electron, and future shells. Load it only after user intent, cache by immutable version/SHA, and invalidate through metadata, not a native rebuild.
Hermes-Relay v0.3.0 is the reference release pattern: version-tagged artifacts, SHA verification, and channel/flavor splits only where platform policy or capability boundaries require them. Do not use flavor/native splits for features that can ship as shared web/runtime/model artifacts.
Every durable feature should be shaped so an LLM can operate it well: inspect current state, understand available capabilities, choose bounded actions, and verify proof with the smallest correct context. The repo should be LLM-native by architecture, not merely LLM-connected at the chat surface.
For state, telemetry, observations, logs, tool results, snapshots, transcripts, protocol payloads, diagnostics, release evidence, and control surfaces, the default contract is a tiny always-on summary plus on-demand lookup tools. Human-readable expanded views may exist, and machine APIs should remain structured, but prompt input must be optimized for LLM token economics and reasoning quality.
Prefer short, stable, repetitive text codes and shared dictionaries that models
can parse cheaply, such as s=home|v=360x710|n=orchestrator, over verbose
field names, nested prompt JSON, raw logs, screenshots, binary blobs, base64,
protobuf, or gRPC payloads inside prompts. Expose explicit capability reports,
action schemas, status fields, counters, error classes, and proof artifacts so
agents do not need to infer state from human-only output.
Before adding a new implementation, measure or estimate baseline context pressure, state the minimum information required for the next decision, and ask whether detail can be fetched only when needed. Production-grade observability is LLM-first: compact, redacted, provider-aware, replayable, and precise enough to let the model decide which bounded tool or proof to call next.
Route ownership is part of the LLM-native contract. Do not repair routing
failures by adding product strings, CSS selectors, DOM classes, filenames, or
feature labels to server/runtime code. Runtime code may enforce a resolved
route contract, but routing knowledge must live in the context map, owning
docs, or a machine-readable route registry. Missing route fields should produce
route_contract_missing, not a broad Hermes/model search over arbitrary roots.
Use docs/context/HARNESS.md after intent/context routing and before slow
investigation, rebuilds, runtime control, or source edits. Repeated uncertainty
should prefer a deterministic promise from
docs/context/HARNESS_PROMISES.json; novel uncertainty can stay in the
exploration lane until it repeats.
The second repeated manual inference needs a promise candidate or a named reason
it cannot be deterministic yet. The third repeat must be promoted or blocked on
a missing primitive, access, or observability field. Validate the promise
registry with python3 tools/context/check-harness-promises.py.
For meaningful native, bridge, wake-word, hot-op, runtime-control, release, or rebuild-heavy work, use Rule-of-Three Prime Checkpoints:
| Role | Owns |
|---|---|
| Builder | Patch, shortcut, hot-op, HMR path, diagnostics, or validation approach. |
| Watcher | Independent truth checks from tests, logs, runtime state, diagnostics, counters, app/device state, or reproducible proof. |
| Gatekeeper | Authorization: accept shortcut, require rebuild, rollback, block, or escalate. |
The same Codex/Frontier instance may perform all three roles, but the report must keep Builder intent, Watcher evidence, and Gatekeeper decision separate. Prefer three evidence classes for rebuild-heavy/native/runtime work: static evidence, runtime evidence, and behavioral evidence.
Prime checkpoints must be atomic, independent, falsifiable, observable, and non-redundant. Examples: service running, permission granted, model SHA matches, hot-op returned success, recent wake event visible, false-wake counter stable, or simulator smoke passed. Do not treat "looks good" or build success as proof.
Canonical current next actions live in docs/context/MAP.md and the nearest
owning child README. Update both together when a next action changes.
| Area | Canonical source |
|---|---|
plugins/wasm-agent |
docs/context/MAP.md; plugins/wasm-agent/README.md |
native/windows |
docs/context/MAP.md; native/windows/README.md |
native/android |
docs/context/MAP.md; native/android/README.md |
docs/context |
docs/context/MAP.md; docs/context/REVIEW.md |
| Trigger | Required docs action |
|---|---|
| Behavior, workflow, API, command, artifact, ownership, or durable next action changes | Update the closest owning README.md or AGENTS.md. |
| Parent route, global guard, or claim status changes | Update this file and docs/context/*. |
| Runtime evidence disproves or fails to prove a claim | Demote the claim in docs/context/CLAIMS.md; do not leave optimistic wording elsewhere. |
| Roadmap item ships | Move current behavior to product/runtime docs and shrink or retire roadmap text. |
| Generated/runtime state changes | Do not document it as source unless the task explicitly concerns that artifact. |
The Windows native app is a minimal bridge shell for live Android wake proof
iteration. It exposes stable primitives and manifest-scanned hot ops instead of
embedding workflow logic in the installed shell. With a verified installer
already present, run python3 tools/windows/check-windows-release-feed.py,
install/restart through Go Native / Check Update, and run
python3 tools/windows/prove-hot-shell.py,
python3 tools/doctor/wasm-agent-doctor.py,
python3 tools/voice/run-hermes-wake-proof.py --dry-run, and
python3 tools/voice/run-hermes-wake-proof.py --debug.
Do not claim installed Windows shell proof until the feed-published installer is
installed and the local bridge passes prove-hot-shell.py.
Do not treat bridge_update_required, hot_operation_missing,
hot_operation_sha_mismatch, hot_operation_capability_denied, or
hot_operations_disabled as runtime proof failures for Android itself; they are
Windows bridge/hot-op loading classifications to resolve before wake proof.
The current implementation treats Windows and Android as stable native
capability kernels. The server release feed can publish downloaded runtime
bundles at artifacts.runtime.launcher and trusted operation bundles under
artifacts.hotOps.*; installed shells with the new kernel report active
runtime/hot-op bundle IDs and SHAs, sync status, and stale reason. Source/feed
tests can verify the contract shape, but installed runtime proof still requires
the Windows/Android commands above.
This layer can change launcher/runtime UI, diagnostics schemas/classifiers, proof/debug scripts, config, model metadata, operation routing, and wake-word threshold policy without a native rebuild when required capabilities already exist. Native rebuilds are still required for new OS permissions, native libraries, manifest/service declarations, installer/APK behavior, package identity, signing, or a new hardware/OS primitive.
The current shortest production-candidate wake phrase is alexa, using the
installed OpenWakeWord bundle and Windows native-control bridge as the control
plane. hey jarvis did not fire with the installed model, and Hermes is a later
personalized/custom-word path rather than the active baseline target.
Physical device ADB is Windows-bridge-only in this setup. The Codex/cloud
workspace may have an adb binary, but adb devices from here is expected to
show no Android device and is not evidence that the USB Android device is gone.
Use Windows bridge hot ops/native-control for ADB-backed Android checks,
stimulus, app launch/recovery, reinstall, diagnostics, and wake proof.
Current live policy evidence on 2026-06-20 used wakePhrase=alexa,
wakeThreshold=0.985, wakeConfirmationFrames=1,
wakeConfirmationWindowMs=700, and wakeCooldownMs=8000. A real-device proof
on Xiaomi Mi 9 SE through the Windows bridge heard alexa. open wake word,
transcribed open wake word, routed open_wake_word, and dispatched HTTP 200
to the active session while open settings did not increment wake or false-wake
counters. Baseline is not accepted yet: the avatar shine is still too late
because the PWA currently reacts after post-transcript voice events, the faster
balanced ASR plan degraded to word after about 10.5s, and installed APK event
metadata still reports wake_word: hermes until the native metadata patch is
rebuilt/reinstalled. Hard-environment tests with music/noise are phase two after
the Alexa wake, transcript, and immediate avatar feedback loop is stable.
Use live app introspection/control before guessing. When a runtime exposes state snapshots, capability reports, visible-action summaries, diagnostics, or policy knobs, prefer those channels before asking the user to describe the screen or before proposing rebuild/reinstall loops. Heavy access such as screenshots, log bundles, or full diagnostics must be explicit, idle-gated, bounded, redacted, and allowed to skip during active user interaction.
Observability and controlled accessibility are core engineering infrastructure: they let agents understand live app state, validate hypotheses, reduce rebuild dependency, and shorten slow loops without bypassing safety gates.
Every substantive reply should end with a concrete next-step phase: name the next command/action, say whether it is live introspection/control, static check, or runtime/package proof, and only suggest rebuilds when a missing primitive, permission, manifest/service change, native library, signing, or package identity requires it.
| Topic | Link |
|---|---|
| Command reference | docs/commands/horc.md |
| Feature docs | docs/features/README.md |
| Roadmap tracks | docs/roadmap/README.md |
| Plugin root | plugins/README.md |
| Script root | scripts/README.md |
Active goal: Use the installed Windows native-control bridge to tune the Android Alexa wake loop until wake, transcript, command routing, and avatar feedback are stable enough for phase-two hard-environment tests.
Canonical proof order:
cd native/windows/src && npm run verify:win-installer -- /local/native/windows/release/WASM-Agent-Setup-x64-0.1.0-20260613T003310Z.exepython3 tools/windows/check-windows-release-feed.pypython3 tools/windows/prove-hot-shell.pypython3 tools/doctor/wasm-agent-doctor.pynative/android/scripts/watch-wake-state.shpython3 tools/voice/run-wake-room-loop.py --stimulus speech --phrase "alexa. open wake word" --observe-sec 24 --settle-sec 2 --state-source command --label alexa-command --volume 100 --rate -2python3 tools/voice/run-wake-room-loop.py --stimulus speech --phrase "open settings" --observe-sec 18 --settle-sec 2 --state-source command --label alexa-negative --volume 100 --rate -2
Windows hot-op shell protocol: shellProtocolVersion: 2, hotOpsProtocolVersion: 1
Required shell capabilities: get_bridge_status, list_hot_operations, run_shell_self_test, run_hot_operation, canary_echo
Alexa wake question: Can the installed OpenWakeWord Alexa loop fire promptly, start post-wake transcription without long linger, route open wake word, and trigger avatar shine at wake/capture time instead of waiting for the final transcript?
Proof guards:
- Do not claim installed Windows shell proof from source tests, build success, or win-unpacked.
- Build success is not update availability; package verification is not feed publication.
- Go Native / Check Update depends on the Windows release feed, and same-semver Windows updates must compare buildId.
- Do not claim Android runtime proof from APK package proof alone.
- Do not treat bridge_update_required or hot_operation_missing as Android wake failures.
- Do not use old command-specific Windows bridge handlers as the canonical wake proof path.
- Do not treat Hermes as the active baseline phrase unless a new installed model/runtime proof makes it current again.
- Do not use Codex/cloud-local ADB as Android connectivity evidence; this setup reaches the device only through the installed Windows bridge.
- When manually dropping Windows native-control command files, set the command verb in top-level
type, not onlycommand; direct file commands bypass the backend normalizer andcommand-only files reach Electron asunsupported_command:.