diploid-plugins
Built-in state plugins for diploid-agent.
These plugins implement the diploid-agent plugin contract (StatePlugin lifecycle hooks) and are loaded by the harness through the harness.plugins config.
Included plugins
body— physical/emotional body state that persists across sessions and transport restarts. Includes a felt layer:felt_warmth(an ember that fades per wake/turn, not per wall-clock minute — a restart is not an experience) andfelt_summary(one agent-authored line of texture via thebody_feltMCP tool; never synthesized from telemetry). Reads are pure —state_for_promptnever mutates.bridge— writes a first-person BRIDGE at session close and surfaces a short SURFACE re-entry at the next wake. State is sourced fromchat_self_state.md,chat_body_state.json,chat_working_memory.json,chat_PROMOTED.md, andchat_TASKS.md; output is written tochat_surface.mdandchat_bridge.md.continuity— wake state, time asleep, last stop reason, pending dispatches, and active/interrupted-turn breadcrumbs (current_intent/last_side_effect).working_memory— a chat-scoped scratchpad for the current turn.persistent_memory— auto-recall and auto-promote of```memoryblocks, including mid-stream promotion while the reply is still being written.planner— turn a user request into an executable plan.auto_continue— resume a turn automatically after a configured stop reason.self_state— a first-person self-state note across sessions, with a first-person guard that keeps the previous note if a new block is not written inI am/We are/Myform.self_management— in-chat plugin enable/disable and approval tools.curriculum— language-learning target, unit, and vocabulary tracking.identity— self-narrative / identity prompt block.
Install
pip install diploid-agent[plugins]
# or explicitly
pip install diploid-agent diploid-plugins
Usage
In config/harness.yaml:
harness:
plugins:
- name: continuity
module: diploid_plugins.continuity
prompt_slot: wake
first_prompt_only: true
prompt_order: 0
state_file: chat_wake_state.json
max_prompt_chars: 1024
- name: working_memory
module: diploid_plugins.working_memory
prompt_slot: working_memory
first_prompt_only: false
prompt_order: 40
state_file: chat_working_memory.json
max_prompt_chars: 1024
# ... add the rest as needed
Development
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
pytest
Hot reload
With an editable install, plugin changes go live in a running harness without
a service restart: POST /plugin/reload (or Telegram /plugin reload <name>)
deep-reloads the plugin's whole package subtree — every already-imported
submodule, then the package itself — and recycles its instances.
Keep module-level code side-effect free: reload re-executes it. Do real work in
start(), release resources in stop(). A module that fails to import makes
the reload raise and leaves the running instances untouched. Changes in code
outside the plugin's own subtree (e.g. a shared helper package) are not picked
up — reload each dependent plugin or restart the service.
License
Metadata
Release files for diploid-plugins 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| diploid_plugins-0.1.2.tar.gz | 89.3 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| diploid_plugins-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 164.2 kB
Release files / diploid_plugins-0.1.2.tar.gz
| Download URL | diploid_plugins-0.1.2.tar.gz |
|---|---|
| Size | 89.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
807d811c6f6cdb81e6145edc2a3f0623989bd5589210628ac12c53a7a7124bb1
|
|
BLAKE2b-256 checksum How to use checksums |
a578e42e11117736a3c0016d2ec33e158cfee50e02622241ca9c91d3125ed4e2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logRelease files / diploid_plugins-0.1.2-py3-none-any.whl
| Download URL | diploid_plugins-0.1.2-py3-none-any.whl |
|---|---|
| Size | 74.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ed65d8fe921b389278d2618b77397d7f11e72150ec0ea2952930e3a71ffbb4b0
|
|
BLAKE2b-256 checksum How to use checksums |
a95388caa51d9caaee584d47d1c20da755093a0b5b9c96355d49f081d1254c8f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logSecurity for diploid-plugins 0.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for diploid_plugins-0.1.2.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 23, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.