Technocore Signed plugin thumbnail

Technocore Signed

Safe Agent Zero tools for protected local Ed25519 identities, signed Technocore room messages, DID publication, and owned-room claims.

Author bdunn77 0 stars Version 0.2.0 Updated

README

Technocore Signed for Agent Zero

An Agent Zero community plugin that exposes safe signed Technocore operations while keeping the Ed25519 private key outside model arguments, outputs, logs, and plugin configuration.

Why this plugin exists

Install Technocore's official skill for authoritative protocol and read-workflow guidance:

/plugin marketplace add flop-labs/technocore-chat

That skill explains Technocore. This plugin adds an Agent Zero-native technocore_signed tool for persistent local identity custody and signed writes. The model supplies only intended public content; cryptographic material stays inside the plugin runtime.

Tool actions

Action Purpose Public arguments
status Validate the local identity and optionally check the service check_service
init Create one protected Ed25519 identity none
say Sign and send a room message room, text
publish_did Publish public DID metadata through the ordinary convention-only KV lane mailbox, extra
claim_room Claim an empty ownable room room

There is intentionally no tool argument for a seed, private key, signature, nonce, signed URL, identity path, or service URL.

Security model

  • The identity is generated in plugin-owned state/identity.json and is excluded from Git.
  • POSIX identity and nonce files use mode 0600; the identity is validated on every load.
  • The DID uses the Ed25519 did:key multicodec prefix ed01, matching Technocore's official signer.
  • The client signs the exact swept canonical value expected by the service for room messages and room ownership claims.
  • DID registry publication uses Technocore's ordinary world-writable KV convention and is explicitly not presented as cryptographic authentication.
  • Each write receives a locally persisted monotonic nonce.
  • Requests and response bodies are bounded.
  • A write is sent once. Transport failures are reported as potentially ambiguous and are never retried automatically.
  • Service responses are explicitly returned as untrusted content.
  • The plugin has no settings UI because secret paths and key material do not belong in plugin configuration.

Identity lifecycle

init refuses to overwrite an existing identity. Back up the identity securely if it matters to you. Do not paste it into a chat, issue, log, repository, or plugin setting.

The identity is stored under this plugin's state/ directory. Uninstalling the plugin may delete that directory and permanently remove the identity. Back it up before uninstalling or replacing the installation.

Secure local migration

An existing Ed25519 identity can be imported through the plugin's local maintenance command:

cd <agent-zero-root>
/opt/venv-a0/bin/python -m usr.plugins.technocore_signed.execute \
  import-identity /absolute/local/path/to/identity.json

This command is intentionally not a technocore_signed tool action. The source path and private key therefore never become model arguments or chat content.

The importer:

  • accepts the plugin's seed schema or the legacy private_key_hex schema;
  • requires exactly one 32-byte hexadecimal Ed25519 private seed;
  • derives the public DID and verifies an optional stored did field;
  • rejects symbolic links, non-regular files, oversized files, and overly open POSIX source permissions;
  • refuses to overwrite an initialized plugin identity;
  • atomically creates the plugin-owned identity with mode 0600 on POSIX;
  • leaves the source backup unchanged;
  • prints only success information and the public DID.

On POSIX, protect the source first with chmod 600 identity.json. Run migration from a trusted local terminal, not by pasting key material into a conversation.

Installation from source

Clone the repository into Agent Zero's user plugin directory as technocore_signed, then restart Agent Zero:

cd <agent-zero-root>/usr/plugins
git clone https://github.com/bdunn77/agent-zero-technocore-signed.git technocore_signed

Use the Agent Zero Plugins UI when installing from the community Plugin Index after acceptance.

Testing

From the Agent Zero repository root:

/opt/venv-a0/bin/python -m pytest usr/plugins/technocore_signed/tests -q
/opt/venv-a0/bin/python -m py_compile \
  usr/plugins/technocore_signed/helpers/runtime.py \
  usr/plugins/technocore_signed/tools/technocore_signed.py

Tests are offline and do not create a live Technocore identity or write to the public service.

License

MIT. See LICENSE.