Skip to main content

OSMP -- Octid Semantic Mesh Protocol. Deterministic agentic instruction encoding.

Project description

OSMP Python SDK

Reference implementation of the Octid Semantic Mesh Protocol. Encodes, decodes, and validates agentic AI instructions using SAL (Semantic Assembly Language). 342 opcodes across 26 namespaces. Inference-free decode by table lookup.

Install

pip install osmp

Zero dependencies beyond Python standard library (optional zstandard for D:PACK).

Tier 1: Two Functions, Zero Setup

from osmp import encode, decode

sal = encode(["H:HR@NODE1>120", "H:CASREP", "M:EVA@*"])
# "H:HR@NODE1>120;H:CASREP;M:EVA@*"

text = decode("H:HR@NODE1>120;H:CASREP;M:EVA@*")
# "heart_rate at NODE1 priority 120; casualty_report; evacuation at broadcast"

Three lines. No instantiation. Module-level singleton, cached on first call.

Additional Tier 1 Functions

from osmp import validate, lookup, byte_size

result = validate("R:MOV@BOT1⚠")
print(result.valid)    # False -- ⚠ requires I:§ precondition

definition = lookup("R:WPT")
# "waypoint"

print(byte_size("H:HR@NODE1>120"))
# 15

Tier 2: Class-Based Interface

For configuration beyond defaults (custom ASD floor, pre-loaded dependency rules, direct ASD access):

from osmp.core import OSMP

o = OSMP()
sal = o.encode(["H:HR@NODE1>120", "H:CASREP"])
text = o.decode(sal)
result = o.validate(sal)
definition = o.lookup("H", "HR")

Tier 3: Full Protocol Access

Direct access to encoder, decoder, ASD, and all protocol internals:

from osmp.protocol import SALEncoder, SALDecoder, AdaptiveSharedDictionary, validate_composition

asd = AdaptiveSharedDictionary()
enc = SALEncoder(asd)
dec = SALDecoder(asd)

sal = enc.encode_frame("R", "MOV", target="BOT1", cc="↺")
result = dec.decode_frame(sal)
# result.namespace = "R"
# result.opcode = "MOV"
# result.opcode_meaning = "move"
# result.consequence_class_name = "REVERSIBLE"

Composition Validation

Eight deterministic rules enforced before any instruction hits the wire:

  1. Hallucination check -- every opcode must exist in the ASD
  2. Namespace-as-target -- @ must not be followed by NS:OPCODE
  3. R namespace consequence class -- mandatory except R:ESTOP
  4. I:§ precondition -- ⚠ and ⊘ require I:§ in the chain
  5. Byte check -- SAL bytes must not exceed NL bytes (exception: R safety chains)
  6. Slash rejection -- / is not a SAL operator
  7. Mixed-mode check -- no natural language embedded in SAL frames
  8. Regulatory dependency -- REQUIRES rules from loaded MDR corpora

Domain Code Resolution

from osmp.protocol import BlockCompressor

bc = BlockCompressor()
bc.load("mdr/icd10cm/MDR-ICD10CM-FY2026-blk.dpack")
result = bc.resolve("J93.0")
# "Spontaneous tension pneumothorax"

Three corpora bundled: ICD-10-CM (74,719 codes), ISO 20022 (47,835 codes), MITRE ATT&CK (1,661 codes).

MCP Server

The MCP server is a separate package that wraps this SDK:

pip install osmp-mcp
osmp-mcp

Nine tools for AI client integration. Connect from Claude Code (claude mcp add osmp -- osmp-mcp), Claude Desktop, Cursor, or any MCP-compatible client.

License

Apache 2.0. Patent pending. Filed March 17, 2026.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

osmp-2.0.1.tar.gz (69.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

osmp-2.0.1-py3-none-any.whl (70.6 kB view details)

Uploaded Python 3

File details

Details for the file osmp-2.0.1.tar.gz.

File metadata

  • Download URL: osmp-2.0.1.tar.gz
  • Upload date:
  • Size: 69.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for osmp-2.0.1.tar.gz
Algorithm Hash digest
SHA256 a8e08a3abf2552b009fdc8675ee1a5f6e8ab23c0fd050b907420a611ef5575c3
MD5 52eba94f46c9f08ddc5ea99c8fea85e7
BLAKE2b-256 f58604de76c278a906ee7926a97ec840564149187c4f7e39908b461a30e93e37

See more details on using hashes here.

File details

Details for the file osmp-2.0.1-py3-none-any.whl.

File metadata

  • Download URL: osmp-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 70.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for osmp-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8c87f952d1444ad59aecc2ddb7f13db0ef38c0246ad2433dc52bd79f19407d98
MD5 b0fc9d3179704cbd4fdbe84456316a05
BLAKE2b-256 fb35bc6466fabf46f310c02490c97bd2bf72a7918c989f4e5d7b754b292cab59

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page