Catalog PyPI
PACKAGE EXPLORERView in registry

abstract-serve-core

PyPI

Provider-neutral shared Serve console for Claude, GPT, Hugpy, and local model backends.

Versions collected1
Direct dependencies3From release 0.1.34
Last observed20 Oct, 17:43 UTC

README

Version 0.1.34 documentation

abstract-serve

The provider-neutral shared Serve console. It owns the durable conversation store, queue/hold contract, session picker, and provider adapters. Claude, GPT, Hugpy, and local-model packages may provide adapters without owning the Serve runtime.

Run abstract-serve --no-browser to start the console.

pip install abstract-serve-core
abstract-serve --no-browser                 # standalone
abstract-claude serve                       # provider package entry point
abstract-gpt serve                           # same routes, GPT seat installed

Part of the hugpy orbit

                    ┌──────────────────────────── hugpy (fleet) ───────────────────────────┐
                    │ central + workers: platform · engine · fleet · server · media · …     │
                    │ OpenAI-compatible /v1 — every local model, incl. B (Qwen3-Coder-Next) │
                    └───────▲───────────────────────▲──────────────────────────▲───────────┘
                            │ inference             │ inference                │ B reductions
   ┌────────────────────────┴──┐   ┌────────────────┴──────────┐   ┌───────────┴───────────────┐
   │ hugpy-station             │   │ hugpy-agent               │   │ abstract-toolserver       │
   │ desktop + headless console│──▶│ agent runtime · TUI ·     │◀─▶│ comms · ledgers · boards ·│
   │ tmux seats per locus      │   │ OpenCode/qwen seats       │   │ exchanges · MCP · b_ask   │
   └────────────┬──────────────┘   └────────────┬──────────────┘   └───────────▲───────────────┘
                │ keeper/codex seats            │ --serve                      │ tools (MCP/HTTP)
   ┌────────────▼──────────────┐   ┌────────────▼──────────────┐               │
   │ abstract-gpt (Codex seat) │   │ abstract-claude serve ────┼───────────────┘
   │ abstract-claude (Claude)  │   │  └ abstract-serve-core    │
   └───────────────────────────┘   └───────────────────────────┘
          everything ships through abstract-pypit → PyPI (+ GitHub)
PackageRolePyPI
hugpy (14 lockstep dists)the self-hosted LLM fleet: central, workers, engine, media, serverhugpy
hugpy-stationElectron desktop + headless backend; tmux seats, prompt composer, loop/bug scandeb via central install links
hugpy-agentagent runtime on the fleet; hugpy-agent tui over the shared Serve APIhugpy-agent
abstract-claudeClaude Code launch/session/rollover + abstract-claude serve (roles keeper/chat/worker/local)abstract-claude
abstract-serve-coreprovider-neutral HTTP routes (queue, relay, rollover sweeps, session API)abstract-serve-core
abstract-gptCodex/ChatGPT seat counterpart of abstract-claudeabstract-gpt
abstract-toolserverone tool service per host: comms, ledgers, boards, exchanges, MCP bridge, B on callabstract-toolserver
abstract-pypitone-command publisher: bump → build → PyPI → GitHub pushabstract-pypit

What it owns

Provider CLI entry points import and execute serve-core's HTTP routes. The route handlers left in abstract_claude/server.py are dead at Serve runtime — patch serve-core, not a provider package, for shared Serve behaviour. Its GET /api/state advertises service=abstract-serve and protocol version 1; clients should identify this API independently of the configured model provider.

  • Roles: keeper, chat, worker, local are standing serve sessions recorded in roster.json — not Claude sessions. Send to one with POST /api/session/<role>/message.
  • Cross-locus relay: session_message / relay accepts to="<locus>" or to="<locus>:keeper"; relay.send_cross posts a comms ping board row on the target locus tagged [from <locus>:<role>], answers 202 queued, and logs to relay.jsonl. Non-keeper cross-locus targets are refused (400).
  • Queue: queue-first collator; prompts are sent verbatim — _compile_prompt() only dedups and joins, never runs a model. A model merge exists only as an explicit preview (POST /api/compile {suggest:true}) the operator must apply.
  • Interrupt = stop (0.1.16): an interrupted batch is done, never retried, never held; queued items drain at the end of the turn.
  • Directives: AC_SESSION_DIRECTIVES_DIR/<role>.md is appended to every turn of that role.
  • Rollover sweeps measure context per session (including gpt sessions via the codex rollout) and roll over near the limit.
  • Seat report: a sidecar publishes {surface: serve, port, pid} to the central seat_state.
  • AC_LOCAL_LLM_URL points at the local model (B) used for previews.

Attention-worthy

  • [rollover] sweep #N log lines are routine, not errors (Station's bug scan ignores them since 1.0.152).
  • Republishing the same version needs pip install --force-reinstall, or the old files stay.
  • Token counters are blank for sessions served by the hugpy engine — it emits no per-turn usage.

Changelog

See CHANGELOG.md (0.1.15: verbatim prompts, gpt runaway guard; 0.1.16: interrupt = stop).

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.1.3419 Oct 20263

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 17:43 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:1bb503395f5b85b948910b3b697a85c244418cf04e6fe98003360f0da96e727c