Skip to content

feat(0.25): Access Engine on current main - #8

Open
PabloTheThinker wants to merge 32 commits into
mainfrom
cursor/access-engine-operational-d9a7
Open

feat(0.25): Access Engine on current main#8
PabloTheThinker wants to merge 32 commits into
mainfrom
cursor/access-engine-operational-d9a7

Conversation

@PabloTheThinker

@PabloTheThinker PabloTheThinker commented Aug 6, 2026

Copy link
Copy Markdown
Owner

This is 0.25 Access Engine on current main (bc624439, the merge of PR #9).

Single land PR. Do not open a second Access Engine PR. Do not squash Cube, Insight, or sibling repos into this tree. No consciousness claims.

Two-turn cognition (this revision)

Both functions on this PR. No pending_silent pump. No oew_broadcast on the inject.

  1. silent_chain_strip — last 3 hub silent lines, gist-filtered against the current user message, cap 8. Appended after bound_strip in on_pre_llm_call and Workflow.run. Skip high/protect. Header: ### Silent (prior).
  2. Live-goal refreshmessage_is_new_goal + Workflow.run. If the operator left goal empty and the new message is not gist-contained in the live goal: park the previous goal (same park_goal path), live goal becomes the message, re-derive plan (derive_plan_steps, strip leading now/please/just/okay), clear leftover say so next_action_line rebuilds. A restatement keeps goal/plan/say.

Same HERMESPACE_HOME, same session, empty-say:

T1  Write a short README for the auth fix, then stop.
T2  Now write the install section.
Turn Report Plan Inject
T1 Write the README Write a short README for the auth fix / Stop hub silent ['Stop']
T2 Write the install section [Write the install section] ### Silent (prior) and plan: Stop. 1073 chars (≤2800). Not a restate of T2.
thanks skip (trivial_ack) silent ['Stop'] not wiped

T2 report does not stay Write the README. It mentions install.

Desk quality — leftover after-state

Empty-say live command:

hermespace turn -m "Write a short README for the auth fix, then stop." --json
Field Result
Report line 1 Write the README
Plan ["Write a short README for the auth fix", "Stop"]
desk.focus bind + Write the README (no lang_stream:)
Silent park Stop only (user-sentence echo not parked)
Lens heading ## Access lens (harness workspace)

Gates (this revision)

Gate Result
unittest PASS 179 (1 skipped)
week-one C1 T1 L1 M1 PASS (Q1 NOT RUN — no judge)
smoke 9/9 from parent cwd
thanks / trivial_ack still skips
Case Result Notes
C1 PASS Space-on context 1380 chars (≤2800), FOA ≤4. Space-off injects nothing.
T1 PASS Previous parked. Live goal = Write docs. Report line 1 = Open README.
L1 PASS Parked 2 silent intermediates from assistant text. FOA 2≤4, hub 2≤25. Fluent ack parked nothing.
M1 PASS Needle survived new session. cube_beat not called when memory.provider=hermescube.
Q1 NOT RUN No judge provider in the tree.

Close-out

Context budgets

One user-message inject. Mid ≤2.8k, high/protect ≤900, hard cap 8500. FOA≤4, silent≤8. Dual decode: Report line 1 = next action.

Self-model

Product language: self-model / self-trace / improve. Never “true self-conscious.”

Out of scope

Open in Web Open in Cursor 

cursoragent and others added 13 commits August 15, 2026 13:37
Research Hermes Agent Quicksilver/Judgment updates and invent the
Obligatory External Workspace (OEW) path to make Hermespace the
functional J-space of Hermes agents.

- Add deep assessment + OEW thesis + phased roadmap
- Move jspace into src/hermespace/jspace/ (hub, env, protocol)
- Reorganize docs into jspace/assessment/architecture/integration/ops/research/roadmap
- Soft-wire ProtocolGate into workflow meta (HERMESPACE_OEW)
- Add LAYOUT.md and planned turn/memory/warehouse package READMEs

Co-authored-by: Pablo <PabloTheThinker@users.noreply.github.com>
Make Hermespace the causal J-space for connected Hermes agents:

- Auto-park silent intermediates on every material turn
- Sticky Soccer→Rugby swap reshapes Report + silent chain
- Reflect seeds next mid-band; ablate filters model broadcast
- Wire OEW through workflow + hermes_bridge + session-end harvest
- Quicksilver inject caps; experiments/oew_eval.py paper scenarios
- HERMESPACE_OEW defaults to 1 (set 0 to soften)

Co-authored-by: Pablo <PabloTheThinker@users.noreply.github.com>
Co-authored-by: Pablo <PabloTheThinker@users.noreply.github.com>
Deepen the research bridge (Baars GWT, Changeux/Dehaene GNW,
Anthropic J-space + Dehaene commentary) and prove higher-order
behavior for day-to-day Hermes use:

- docs/jspace/29 + 30 (research + daily usage)
- experiments/day_in_life_oew.py — 12/12 paper-shaped scenarios
- Enforce hub ≤25 capacity bottleneck in JSpace._recompete
- CI test runs the day-in-life harness

Proof: selectivity, ignition, hold-while-report, silent dual-decode,
France→China swap, inject, ablate, CRT reflect seed, workflow,
night harvest, capacity, C2 audit.

Co-authored-by: Pablo <PabloTheThinker@users.noreply.github.com>
Capture how Anthropic's X video/thread says J-space is operated
(read, audit, shape; deliberate vs automatic; hidden goals) and
make that the Hermes-base product surface:

- docs/jspace/31-anthropic-x-video-deep-dive.md
- docs/jspace/32-hermes-base-as-jspace.md
- hermespace.HermesBase facade + hs base CLI
- tests/test_hermes_base.py

Thesis: Hermes Agent = specialists; Hermespace OEW = J-space;
HermesCube = enduring memory Anthropic's model alone lacks.

Co-authored-by: Pablo <PabloTheThinker@users.noreply.github.com>
When a Hermes agent connects through Hermespace, charge Cube/standalone
wisdom into WorldModel, seed the OEW hub, and surface optional hive peer
presence. HermesBase.connect / hs base connect|room; living assessment
maps Anthropic/Baars/Dehaene memories to the Cube-as-core design.

Co-authored-by: Pablo <PabloTheThinker@users.noreply.github.com>
Merge FOA hub, OEW, dual decode, connect, lens/audit/scalpel, and harvest
into one J-Space Engine for Hermes Agent — warehouse optional.

Fixes: silent inject double-hold, Workbench second beat, double hub sync,
fragmented night harvest. Adds access_roles, metrics, chain, probe, and
plugin user_reply_hint. HermesBase becomes a thin alias.

Co-authored-by: Pablo <PabloTheThinker@users.noreply.github.com>
Rename product surface away from third-party J-space naming:
AccessEngine, AccessHub, AccessEnv, hermespace.access, hs access.
Keep hermespace.jspace as a deprecated shim only.

Co-authored-by: Pablo <PabloTheThinker@users.noreply.github.com>
Co-authored-by: Pablo <PabloTheThinker@users.noreply.github.com>
Co-authored-by: Pablo <PabloTheThinker@users.noreply.github.com>
Co-authored-by: Pablo <PabloTheThinker@users.noreply.github.com>
Co-authored-by: Pablo <PabloTheThinker@users.noreply.github.com>
Land the remaining operational-desk work on Access Engine rebased onto current main:
- Insight soft-import (bounded perceive card, fail-soft, high-load skip)
- Skip or shrink cube_beat when Hermes memory.provider already prefetched
- World projects from the Cube book instead of a second JSONL archive
- plugin.yaml provides_hooks for all 9 hooks plus advisory python_dependencies
- Drop leftover ILO_HOME / ilo-finish-report strings without brand blocklists

Co-authored-by: Pablo <PabloTheThinker@users.noreply.github.com>
cursoragent and others added 3 commits August 15, 2026 13:48
Hang the Insight strip beside cube_beat on pre_llm_call only. Feature-detect
HermesInsight.perceive_card; skip until that method exists. Do not format
perceive() output or call plan on the hot path. Skip entirely on high/protect
load. AccessEngine.turn no longer injects Insight.

Co-authored-by: Pablo <PabloTheThinker@users.noreply.github.com>
Config-only single-pump: if Hermes memory.provider is hermescube, do not
call cube_beat / center.supply / build_space_inject on pre_llm. MemoryManager
already prefetched. Empty prefetch leaves no second strip. pulse_charge and
sync_world_beliefs stay on idle/enter/seal. No MemoryProvider in Space.

Co-authored-by: Pablo <PabloTheThinker@users.noreply.github.com>
Fail-soft: missing or corrupt memory.provider config means provider off,
so pre_llm still runs cube_beat. Skip only when provider is confirmed
hermescube. Insight still never calls recall / perceive / insight_beat.

Co-authored-by: Pablo <PabloTheThinker@users.noreply.github.com>
@cursor
cursor Bot force-pushed the cursor/access-engine-operational-d9a7 branch from daa7c35 to 09b244f Compare August 15, 2026 13:53
@cursor cursor Bot changed the title feat(0.25): production Access Engine for Hermes Agent v0.20 feat(0.25): Access Engine on current main Aug 15, 2026
@PabloTheThinker
PabloTheThinker marked this pull request as ready for review August 15, 2026 13:53
cursoragent and others added 10 commits August 15, 2026 14:05
Steal execute/focus shapes from hermes-audhd-skills without vendoring it.
One live goal; park others as Name — state — next crumb. Report line 1 is
the next action; lists cap at 5; never quiz as the lead. Fabric-hint
audhd-* SKILL.md when present; skip emotion and skip if missing.

Co-authored-by: Pablo <PabloTheThinker@users.noreply.github.com>
Steal grokbot doctor/enable shape only. Doctor fails when the plugin,
skill, or plugins.enabled entry is missing. Install appends hermespace
and never replaces Cube, Insight, or grokbot.

Co-authored-by: Pablo <PabloTheThinker@users.noreply.github.com>
Plugin paints Goal · FOA≤4 · parked · sealed decision from the existing
hs view snapshot. Core owns input: no mic, no orb, no second capture path.

Co-authored-by: Pablo <PabloTheThinker@users.noreply.github.com>
Stop injecting the operator lens readout into model context. On the
existing post_llm hook, park 1-3 silent steps extracted from the actual
assistant text. The model must not see the operator lens as its J-space.

Co-authored-by: Pablo <PabloTheThinker@users.noreply.github.com>
Hard protocol line in the inject. post_llm checks the actual utterance
and reseeds if the bound intervention was ignored. Swaps that do not
change the next Report are theater.

Co-authored-by: Pablo <PabloTheThinker@users.noreply.github.com>
Name only — no args or results. Hub moves when tools fire so the
observe-only FOA chip updates mid-turn from the existing snapshot.

Co-authored-by: Pablo <PabloTheThinker@users.noreply.github.com>
…abled

hs install / install_hermes.sh copy Space, then offer optional organs.
Always append to plugins.enabled. Set memory.provider=hermescube only
when unset. Doctor FAILs if Space is broken; WARNs if Cube/Insight missing.

Co-authored-by: Pablo <PabloTheThinker@users.noreply.github.com>
Register pre_tool_call, on_skill_lifecycle, kanban claimed/completed,
and pre_verify as optional fail-open observers. Mid-load inject cap is
strictly under 9k. on_session_finalize harvest has a 10s fail-open budget.

Co-authored-by: Pablo <PabloTheThinker@users.noreply.github.com>
Community README/PURPOSE: desk plus optional Cube library and Insight
pattern card behind one unioned plugins.enabled. No product rename.
No weight-access claim.

Co-authored-by: Pablo <PabloTheThinker@users.noreply.github.com>
Keep one user-message inject under mid ≤2.8k / high ≤900. Skip fluent
ack, pinned protect, missing organs, and shared-hub subagents. Park a
capped self-trace on the hub (goal, decision, tool:name, Report line)
and seal one-line improve into Cube when present. No consciousness claim.

Co-authored-by: Pablo <PabloTheThinker@users.noreply.github.com>
cursoragent and others added 6 commits August 15, 2026 22:33
Four isolated fixture cases, Space-on vs HERMESPACE_OFF. No scores, no
leaderboard. Q1 stays NOT RUN — no judge provider in the tree. Cube and
Insight stay optional. Fluent ack parks nothing.

Co-authored-by: Pablo <PabloTheThinker@users.noreply.github.com>
Empty-say turns derive a real plan and lead with next_action_line
instead of dumping production/partner slots or the filler execute.
FOA collapses near-duplicate gists to distinct clauses. Root plugin
entry loads src/hermespace via importlib so a checkout named
hermespace cannot shadow the package. Operator lens title is no
longer J-Lens readout.

Co-authored-by: Pablo <PabloTheThinker@users.noreply.github.com>
Match the proven empty-say cut, then tighten leftovers: desk.focus
keeps one bind instead of prefixed copies; hub/neural collapse
lang_stream and containment dups; empty say leads with a short verb
phrase (Write the README) via next_action_line. Root plugin pops the
shim from sys.modules before importing register. Lens title is
Access lens (harness workspace); sanitizer still treats J-Lens
readout as dirty.

Co-authored-by: Pablo <PabloTheThinker@users.noreply.github.com>
Empty-say lead is compress_action_phrase(plan[0]) (drop short/a/an).
FOA/hub/neural drop lang_stream and user-sentence echoes; bind +
Write the README remain. OEW skips gist-contained candidates and
still parks distinct Stop. Quality test asserts this live turn.

Co-authored-by: Pablo <PabloTheThinker@users.noreply.github.com>
Hub already keeps T1 silent_steps. Append last-3 gist-filtered lines
after bound_strip so the agent sees parked thought on the next inject.
No pending_silent pump, no broadcast, no lens. Skip high/protect.

Co-authored-by: Pablo <PabloTheThinker@users.noreply.github.com>
Empty-goal T2 that is not a restatement parks the previous goal,
re-derives plan (strip now/please/just), and clears leftover say.
Hub silent still rides the inject as ### Silent (prior).

Co-authored-by: Pablo <PabloTheThinker@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants