{"id":47709146,"url":"https://github.com/octid-io/cloudless-sky","last_synced_at":"2026-04-22T00:01:25.808Z","repository":{"id":345459880,"uuid":"1184685025","full_name":"Octid-io/cloudless-sky","owner":"Octid-io","description":"OSMP — Octid Semantic Mesh Protocol. Agentic AI instruction encoding for any channel.","archived":false,"fork":false,"pushed_at":"2026-04-13T21:36:43.000Z","size":9579,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-13T23:29:10.269Z","etag":null,"topics":["agentic-ai","encoding","mcp","mcp-server","meshtastic","model-context-protocol","openclaw","picoclaw","protocol"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Octid-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-17T20:41:10.000Z","updated_at":"2026-04-13T21:36:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"f6b30691-5d7b-4c9f-a80a-f8f2e8a9b08b","html_url":"https://github.com/Octid-io/cloudless-sky","commit_stats":null,"previous_names":["octid-io/cloudless-sky"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/Octid-io/cloudless-sky","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Octid-io%2Fcloudless-sky","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Octid-io%2Fcloudless-sky/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Octid-io%2Fcloudless-sky/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Octid-io%2Fcloudless-sky/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Octid-io","download_url":"https://codeload.github.com/Octid-io/cloudless-sky/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Octid-io%2Fcloudless-sky/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31818840,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T18:05:02.291Z","status":"ssl_error","status_checked_at":"2026-04-14T18:05:01.765Z","response_time":153,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agentic-ai","encoding","mcp","mcp-server","meshtastic","model-context-protocol","openclaw","picoclaw","protocol"],"created_at":"2026-04-02T18:21:49.155Z","updated_at":"2026-04-22T00:01:25.790Z","avatar_url":"https://github.com/Octid-io.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cloudless Sky\n\n**Agentic AI mesh without the cloud.**\n\nOSMP (Octid Semantic Mesh Protocol) is an open encoding standard for agentic AI instruction exchange. It works across any channel -- from a 51-byte LoRa radio packet to a high-throughput cloud inference pipeline -- using the same grammar, the same dictionary, and the same decode logic.\n\nNo cloud required. No inference at the decode layer. No central authority.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/octid-openclaw.png\" alt=\"Octid and the OpenClaw community\" width=\"480\"\u003e\n\u003c/p\u003e\n\n---\n\n## The Problem\n\nWhen AI agents communicate in JSON over HTTP, the cost compounds at every hop.\n\n```json\n{\"action\": \"move\", \"agent\": \"BOT1\", \"waypoint\": \"WP1\", \"priority\": \"urgent\"}\n```\n\n82 bytes of JSON envelope before you put any content in. Requires tokenization. Requires inference to parse. Fails completely at the 51-byte LoRa minimum payload.\n\n## The Solution\n\n```\nR:MOV@BOT1:WPT:WP1↺\n```\n\n21 bytes. Decode is deterministic. Fits a single LoRa packet at maximum-range spreading factor. No inference required at the receiving node. The agent calls `osmp_compose` and the deterministic pipeline handles opcode selection, grammar assembly, and validation. 95.7% opcode coverage on the full 352-opcode dictionary. 98.6% with LLM fallback. What OSMP changes is the output format, and the decode layer: the receiving node decodes a structured instruction without inference.\n\n---\n\n## Integration Path\n\nOSMP replaces JSON as the agent instruction serialization format. An LLM that currently outputs:\n\n```\n\"If heart rate at node 1 exceeds 120, assemble casualty report\n and broadcast evacuation to all nodes.\"\n\n→ 100 bytes. Requires tokenization. Requires inference to parse.\n  Fails completely at 51-byte LoRa minimum payload.\n```\n\ncan be configured via system prompt to output:\n\n```\nH:HR@NODE1\u003e120→H:CASREP∧M:EVA@*\n\n→ 35 bytes. 65% reduction. Decode is deterministic.\n  Fits a single LoRa packet at maximum-range spreading factor.\n  No inference required at the receiving node.\n```\n\n---\n\n\n\n---\n\n## Using OSMP in Your Agent\n\nInstalling the SDK gives you encode, decode, and validate. Making your agents speak SAL requires wiring those into your agent loop. Here is the end-to-end pattern.\n\n### Step 1: Give Your LLM the Composition Doctrine\n\nThe LLM needs to know the SAL grammar, the opcode dictionary, and the composition rules before it can compose SAL.\n\n**Path A (MCP):** This happens automatically. When an MCP-native agent connects to the OSMP server, it reads the `osmp://system_prompt` resource (~390 tokens, under 0.3% of a 200K context window). The agent learns the grammar, the dictionary, and the composition rules on connect. No manual prompt engineering required.\n\n**Path B (SDK):** Add the [Usage Doctrine](docs/SAL-usage-doctrine-v1.md) to your LLM's system prompt. The doctrine teaches the LLM when to compose SAL, when to fall back to natural language, and how to select the right opcode for a given intent.\n\n### Step 2: Compose\n\nCall `osmp_compose` (MCP) or `SALComposer.compose()` (SDK). The deterministic pipeline handles opcode selection, grammar assembly, and validation. The model never writes SAL by hand.\n\n```\nNatural language: \"If heart rate exceeds 120, file a casualty report and evacuate all nodes.\"\nosmp_compose →    H:HR\u003e120→H:CASREP∧M:EVA@*\n```\n\n### Step 3: Validate Before Transmitting\n\nEvery composed instruction passes through the validator before it hits the wire. Eight rules. No exceptions.\n\n```python\nfrom osmp import encode, decode, validate\n\nsal = \"H:HR@NODE1\u003e120→H:CASREP∧M:EVA@*\"\nresult = validate(sal, nl=\"If heart rate exceeds 120, file casualty report and evacuate all nodes.\")\n\nif result.valid:\n    transmit(sal)  # your transport layer\nelse:\n    for issue in result.issues:\n        print(f\"{issue.rule}: {issue.message}\")\n```\n\nThe validator catches hallucinated opcodes, missing consequence classes, namespace-as-target errors, byte inflation (BAEL floor guarantee), and regulatory dependency violations.\n\n### Step 4: Decode at the Receiving Node\n\nThe receiving node decodes deterministically. No inference. No model. No ambiguity. The instruction is the intent.\n\n```python\nfrom osmp import decode\n\nsal = receive()  # your transport layer\ntext = decode(sal)\n# \"(clinical) [clinical] heart rate above 120 at NODE1, then [clinical] casualty report, then [emergency] evacuation at all nodes\"\n# The agent acts on the decoded instruction.\n```\n\nThe decode is identical across all three SDKs. Python, TypeScript, and Go produce field-for-field identical results from the same SAL input.\n\n### Mixed Environments: The SALBridge\n\nNot every agent in your system will speak OSMP. The SALBridge handles the boundary.\n\n```python\nfrom osmp import bridge\n\nb = bridge(\"MY_NODE\")\nb.register_peer(\"GPT_AGENT\", attempt_fnp=False)\n\n# Outbound: SAL decoded to natural language, annotated with SAL equivalent\nout = b.send(\"H:HR@NODE1\u003e120;H:CASREP\", \"GPT_AGENT\")\n# \"heart_rate at NODE1 exceeds 120; casualty_report\n#  [SAL: H:HR@NODE1\u003e120;H:CASREP]\"\n\n# Inbound: scanned for SAL acquisition\nresult = b.receive(\"A:ACK\", \"GPT_AGENT\")\n```\n\nThe bridge annotates outbound messages with SAL equivalents, seeding the remote agent's context window. When the remote agent starts producing valid SAL through exposure, the bridge detects it and transitions from FALLBACK to ACQUIRED. OSMP spreads by contact, not installation.\n\nThe MCP server includes five bridge tools (`osmp_bridge_register`, `osmp_bridge_send`, `osmp_bridge_receive`, `osmp_bridge_status`, `osmp_bridge_comparison`) for agents operating in mixed environments.\n---\n\n## Where OSMP Sits\n\nOSMP is not a framework. It is an encoding layer. MCP, A2A, and ACP define how agents discover and invoke each other. OSMP defines how the instructions themselves are encoded once composed. An MCP client using OSMP encodes its tool calls in SAL instead of JSON. The framework stays the same. The wire format changes.\n\n| Layer | What it does | Components |\n|---|---|---|\n| **Application** | Agent framework and LLM composition | MCP, A2A, ACP, CrewAI, AutoGen, LangGraph |\n| **Encoding** | Instruction serialization (OSMP replaces JSON here) | SAL (human-readable), SAIL (binary), Composition Validator, ASD, BAEL |\n| **Transport** | Byte delivery | HTTP, LoRa, BLE, WiFi, Meshtastic, satellite, serial, MQTT, TCP/UDP |\n\nToday, every framework above the line serializes to JSON-RPC over HTTP. That works when your transport is an unconstrained internet connection. It fails at 51 bytes. OSMP replaces that serialization step. JSON-RPC requires HTTP. Protocol Buffers require a schema compiler and a reliable transport. SAL and SAIL encode to raw bytes that fit any channel, from a 51-byte LoRa packet at maximum-range spreading factor to a high-throughput cloud pipeline. Two agents using different frameworks that share the OSMP grammar and dictionary can communicate with no modification to either framework.\n\n## SAL and SAIL\n\n**SAL** (Semantic Assembly Language) is the human-readable encoding. Unicode glyphs. Inspectable at every hop.\n\n**SAIL** (Semantic Assembly Isomorphic Language) is the binary encoding. Opaque bytes. Maximum compression for constrained channels.\n\nSAL and SAIL are isomorphic. Every valid SAL instruction has exactly one SAIL encoding. Every valid SAIL payload decodes to exactly one SAL instruction. The decode path is encoding-agnostic: the same deterministic decode, the same structured result.\n\nBAEL selects the wire mode automatically based on channel capacity and instruction safety classification:\n\n| Channel | Consequence | Wire Mode |\n|---|---|---|\n| Constrained (LoRa, BLE) | HAZARDOUS/IRREVERSIBLE | SAIL + SEC (binary, signed) |\n| Constrained | REVERSIBLE | SAIL (binary, unsigned) |\n| Unconstrained (HTTP, WiFi) | HAZARDOUS/IRREVERSIBLE | SAL + SEC (readable, signed) |\n| Unconstrained | REVERSIBLE | SAL (readable, unsigned) |\n\nSEC is the security envelope: node ID + monotonic sequence counter + AEAD tag + Ed25519 signature. 87 bytes of fixed overhead. Designed for mesh networks with no certificate authority and no internet connectivity.\n\n---\n\n## Measured Performance\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd align=\"center\"\u003e\u003ch1\u003e86.8%\u003c/h1\u003e\u003cb\u003ebyte reduction vs JSON\u003c/b\u003e\u003cbr\u003e29 real-world vectors from 5 frameworks\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\u003ch1\u003e84.5%\u003c/h1\u003e\u003cb\u003ebyte reduction vs MessagePack\u003c/b\u003e\u003cbr\u003ebinary serialization baseline\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\u003ch1\u003e70.5%\u003c/h1\u003e\u003cb\u003ebyte reduction vs protobuf\u003c/b\u003e\u003cbr\u003ecompiled schemas, protoc 3.21.12\u003c/td\u003e\n\u003ctd align=\"center\"\u003e\u003ch1\u003e76.0%\u003c/h1\u003e\u003cb\u003efewer tokens (GPT-4)\u003c/b\u003e\u003cbr\u003ecl100k_base tokenizer, 1,809 → 434\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\nCompression claims are measured, not estimated. The [29-vector SAL vs JSON benchmark](benchmarks/sal-vs-json/) uses real wire-format payloads from MCP, OpenAI, Google A2A, CrewAI, and AutoGen. Full methodology and adversarial review in the [whitepaper](docs/SAL-efficiency-analysis.md).\n\n### Behavioral Compliance\n\nSmaller on the wire means nothing if the LLM can't use it correctly. Cross-model testing confirms it can.\n\n| Model | JSON Compliance | SAL Compliance | Delta | Wire Reduction |\n|---|---|---|---|---|\n| Claude Sonnet 4 | 90% | 95% | +5% | 72% |\n| GPT-4o | 85% | 88% | +3% | 72% |\n| GPT-4o-mini | 88% | 88% | 0% | 72% |\n\nSAL delivers 88-95% behavioral compliance across three models at 72% less wire cost. JSON delivers 85-90% at full cost. SAL's advantage is concentrated in safety classification: JSON models identify the correct consequence class 75% of the time. SAL models identify it 100% of the time, across every model tested. The glyph is a universal signal.\n\n---\n\n## EML — Mathematics on the Wire\n\nOSMP encodes instructions. **EML encodes mathematics.** Both ship in the same package.\n\nEML is a companion evaluator based on Odrzywołek (2026, [arXiv:2603.21852](https://arxiv.org/abs/2603.21852)): a single binary operator `eml(x, y) = exp(x) − ln(y)`, together with the constant 1, generates the standard calculator function basis — exp, ln, sin, cos, sqrt, arithmetic, and more — as compact expression trees.\n\nA full sin(x) or sqrt(x) approximation fits in fewer than 100 bytes on the wire. The receiving node decodes the tree and evaluates it deterministically by composing `eml` in a loop — no math library dependency, byte-exact identical output across Python, Go, and TypeScript.\n\n```python\nfrom osmp.eml import get_base_chain, compound_x_plus_y, compound_linear_calibration\nimport math\n\n# exp, ln, sin, cos and 12 other base functions as pre-built chains\nget_base_chain(\"ln(x)\").evaluate(math.e)          # 1.0\n\n# Arithmetic compounds\ncompound_x_plus_y().evaluate([2.0, 3.0])                # 5.0\ncompound_linear_calibration().evaluate([2.0, 3.0, 1.0]) # a·x + b = 7.0\n```\n\nThis means a constrained-channel instruction can carry its own math: a 51-byte LoRa frame can ship an OSMP instruction AND the Breit-Wigner fit, exponential decay curve, or sensor calibration polynomial needed to interpret it — on any receiver, without firmware updates or a math library.\n\n### Dual-Mode Precision\n\n- **Fast mode** (default) — fdlibm-derived, 1-ULP accurate. Correct for LoRa/BLE/edge-ML, drone swarm coordination, and general scientific computation. **Ships publicly.**\n- **Precision mode** — crlibm-derived, correctly-rounded, audit-grade. For regulated industries (medical IEC 62304, aerospace DO-178C, nuclear IEC 61513), audit-grade finance, and cryptographic protocol-frame hash inputs. **Available under commercial license.** Contact `ack@octid.io` or see [PATENTS.md](PATENT-NOTICE.md).\n\n### Cross-Device Determinism\n\nTwo receivers on heterogeneous hardware must produce byte-exact identical output from the same encoded chain. The fast-mode backend uses only IEEE-754 basic arithmetic plus `frexp` / `ldexp`, making all three language implementations bit-equivalent. Fingerprint the corpus to verify:\n\n```\nfast-mode fingerprint: e9a4a71383f14624472fe0602ca5e0ff1959e00b09725a62d584e1361f842c1b\n```\n\nIdentical across Python / Go / TypeScript.\n\nSee the [Python SDK eml section](sdk/python/README.md#eml--universal-binary-operator-evaluator), [Go SDK eml section](sdk/go/README.md#eml--universal-binary-operator-evaluator), or [TypeScript SDK eml section](sdk/typescript/README.md#eml--universal-binary-operator-evaluator) for usage details. Patent pending.\n\n---\n\n## Quick Start\n\n```python\nfrom osmp import encode, decode\n\nsal = encode([\"H:HR@NODE1\u003e120\", \"H:CASREP\", \"M:EVA@*\"])\n# \"H:HR@NODE1\u003e120;H:CASREP;M:EVA@*\"\n\ntext = decode(sal)\n# \"(clinical) [clinical] heart rate above 120 at NODE1, then [clinical] casualty report, then [emergency] evacuation at all nodes\"\n```\n\nThree lines. Zero setup. Zero dependencies. The SDK handles dictionary initialization internally.\n\n### Install\n\nFour production paths. All four are real integration options, not tiers.\n\n**Python SDK** (reference implementation, zero dependencies)\n```bash\npip install osmp\n```\n```python\nfrom osmp import encode, decode\n```\nWire encode/decode into your agent framework's serialization pipeline. Add the [Usage Doctrine](docs/SAL-usage-doctrine-v1.md) to your LLM's system prompt. The agent composes SAL instead of JSON. The receiving node decodes deterministically — the output is a structured, typed instruction, not text.\n\n**TypeScript SDK**\n```bash\nnpm install osmp-protocol\n```\n```typescript\nimport { encode, decode } from \"osmp-protocol\";\n```\n\n**Go SDK**\n```go\nimport \"github.com/octid-io/cloudless-sky/sdk/go/osmp\"\n\nsal := osmp.Encode([]string{\"H:HR@NODE1\u003e120\", \"H:CASREP\", \"M:EVA@*\"})\ntext := osmp.Decode(sal)\n```\n\n**MCP Server** (Claude Desktop, Cursor, Claude Code, any MCP client)\n```bash\npip install osmp-mcp\nosmp-mcp\n```\nThe MCP server is not an evaluation tool. It is a production integration. The agent connects, reads the `osmp://system_prompt` resource, and calls `osmp_compose` to convert NL instructions to SAL. The server stays running as the compose/encode/decode/validate layer underneath. 19 tools (including `osmp_eml_evaluate` and `osmp_eml_corpus_lookup` for on-wire mathematics), three MDR corpora, composition doctrine included. Connect from Claude Code: `claude mcp add osmp -- osmp-mcp`. Listed on the [MCP Registry](https://registry.modelcontextprotocol.io) as `io.github.Octid-io/osmp`.\n\nThe three SDKs are for agents and frameworks that manage their own transport (CrewAI, AutoGen, LangGraph, custom orchestrators, embedded nodes). The MCP server is for agents that already speak MCP. Both approaches run OSMP in production. The difference is who manages the connection.\n\nFor platform-specific install notes (Termux, Raspberry Pi, constrained hardware), see [KNOWN-ISSUES.md](KNOWN-ISSUES.md).\n\n---\n\n\n\n## SDK Status\n\nAll three SDKs are independently verified against the canonical test suite. Wire compatibility is confirmed: Python, TypeScript, and Go produce field-for-field identical decode results across every namespace, every operator, and every edge case documented in the spec. D:PACK/BLK resolve is verified across all 124,215 domain codes (74,719 ICD-10-CM + 47,835 ISO 20022 + 1,661 MITRE ATT\u0026CK) in all three SDKs.\n\n| SDK | Install | API | Notes |\n|---|---|---|---|\n| **Python** | `pip install osmp` | `from osmp import encode, decode` | Reference implementation |\n| **TypeScript** | `npm install osmp-protocol` | `import { encode, decode }` | `fzstd` for D:PACK/BLK |\n| **Go** | `go get .../sdk/go/osmp` | `osmp.Encode()` / `osmp.Decode()` | ASD compiled-in |\n| **MCP Server** | `pip install osmp-mcp` | 19 tools via MCP protocol | Wraps Python SDK |\n\n### Benchmark\n\n```\n$ python3 -m osmp.protocol\n\nOSMP BENCHMARK — Cloudless Sky Protocol v1.0\nSDK: Python (reference)\n\n  ID         NL Bytes OSMP Bytes  Reduction\n  ✓ TV-001         43         10      76.7%\n  ✓ TV-013        100         35      65.0%\n  ✓ TV-015        101         30      70.3%\n  ...\n\n  CONFORMANT ✓\n```\n\nRun it yourself. The numbers are real and independently reproducible across all three SDKs. The measured wire-format comparisons (86.8% vs JSON, 70.5% vs protobuf, 76.0% fewer tokens) use the [29-vector benchmark suite](benchmarks/sal-vs-json/).\n\n---\n\n## Architecture\n\n| Component | Function |\n|---|---|\n| **ADP** — ASD Distribution Protocol | Dictionary delta synchronization across nodes |\n| **ASD** — Adaptive Shared Dictionary | 352-opcode version-pinned compression dictionary |\n| **BAEL** — Bandwidth-Agnostic Efficiency Layer | Adaptive encoding across any channel capacity |\n| **FNP** — Frame Negotiation Protocol | Capability negotiation, session handshake, FALLBACK/ACQUIRED states for non-OSMP peers |\n| **MDR** — Managed Dictionary Registry | Domain-specific controlled vocabulary corpora (ICD-10-CM, ISO 20022, MITRE ATT\u0026CK) packaged as D:PACK/BLK binaries for edge-local resolution without network access |\n| **OP** — Overflow Protocol | Message fragmentation, priority, graceful degradation |\n| **SAIL** — Semantic Assembly Isomorphic Language | Binary wire encoding, isomorphic to SAL |\n| **SAL** — Semantic Assembly Language | Human-readable symbolic instruction format |\n| **SEC** — Security Envelope | AEAD + Ed25519 authentication for mesh networks |\n| **SNA** — Sovereign Node Architecture | Autonomous edge node, air-gapped operation |\n| **TCL** — Translational Compression Layer | Semantic serialization and transcoding |\n\n---\n\n## What OSMP Delivers Today\n\nEverything here is operational from the floor ASD without MDR, cloud access, or additional tooling.\n\n**Instruction encoding across all 26 standard namespaces** — 352 opcodes drawn from authoritative sources: IEC 61850 (energy), ICD-10/SNOMED CT/CPT (clinical), ISO 20022/FIX/SWIFT (financial), ISO 10218-1:2025 (robotics), FEMA ICS/NIMS (emergency management), BDI/PDDL/HTN (cognitive AI), OpenAI/Anthropic APIs (model operations). Registered macro architecture with 16 Meshtastic macros (pre-validated multi-opcode chain templates invoked via `A:MACRO[name]`).\n\n**Four AI-native namespaces** — J (Cognitive Execution State), Q (Quality/Evaluation/Grounding), Y (Memory + Retrieval), Z (Model/Inference Operations). No prior agent communication protocol defines these. They encode what agents do internally, not just what they communicate between themselves. The J→Y→Z→Q chain encodes the full AI cognitive pipeline as a single transmissible SAL instruction sequence, decodable by ASD lookup without neural inference.\n\n**Two-tier corpus compression** -- `D:PACK` applies OSMP encoding followed by lossless dictionary-based compression for at-rest storage. Two profiles: D:PACK/LZMA (full-corpus, companion device) and D:PACK/BLK (zstd block-level, microcontroller target with single-code random access in 38KB SRAM). `D:UNPACK` retrieves semantic content by ASD lookup against the SAL intermediate representation. Three complete D:PACK/BLK dict-free builds demonstrate the architecture at scale: the CMS FY2026 ICD-10-CM code set (74,719 clinical descriptions, 5.4MB raw) produces a 477KB binary (91.4% total reduction), the ISO 20022 eRepository (47,835 unique financial definitions extracted from 66,956 source rows, 8.7MB raw) produces a 1.2MB binary (86.5% total pipeline reduction), and the MITRE ATT\u0026CK Enterprise v18.1 knowledge base (1,661 techniques, malware, tools, and threat groups, 82KB raw) produces a 20KB binary (75.3% reduction). All artifacts fit in ESP32 flash and enable edge-local domain code resolution without network access.\n\n**Layer 2 accessors** — Bracket-enclosed slot values drawn from external open-ended registries: `H:ICD[R00.1]`, `H:SNOMED[concept_id]`, `H:CPT[99213]`, `K:ISO[MessageDefinitionIdentifier]`. Layer 2 slot values are exempt from the single-character encoding rule and are fully functional today with native code values in brackets. MDR corpus compression increases storage density of these codes; it does not gate the accessor pattern itself.\n\n**Three MDR domain corpora shipped** — ICD-10-CM (74,719 clinical codes, H namespace), ISO 20022 (47,835 financial definitions, K namespace), and MITRE ATT\u0026CK Enterprise v18.1 (1,661 entries, S namespace). All three are D:PACK/BLK dict-free binaries resolvable by all three SDKs without network access. See D:PACK section above for sizes and reduction figures.\n\n**R:ESTOP hard exception** — executes immediately on receipt of any single fragment, regardless of loss tolerance policy, fragment completeness, or I:§ authorization state. Asymmetric harm: unnecessary stop is recoverable; failure to stop a physical agent in emergency is not. This is intentional and documented in spec §8.2. Do not modify.\n\n**Overflow Protocol** — Tier 1 (single packet, ≤51 bytes at LoRa SF12), Tier 2 (sequential burst), and Tier 3 (DAG decomposition for conditional branches and dependency chains). Three loss tolerance policies: Φ (Fail-Safe), Γ (Graceful Degradation, default), Λ (Atomic -- required for K and H namespace instructions with irreversible consequences). Tier 3 decomposes compound SAL instructions into a directed acyclic graph of executable units with dependency pointers, resolves execution order via topological sort, and applies loss tolerance to the maximal resolvable subgraph under partial receipt. Multi-parent dependencies (diamond joins) use a FLAGS bit 3 extended dependency bitmap. Fragment header stays at 6 bytes across all three tiers.\n\n**BAEL floor guarantee** — the protocol never makes an instruction longer than its natural language input. When the encoded form exceeds the natural language form, BAEL selects NL_PASSTHROUGH and transmits the original with a flags bit. Compression is never negative.\n\n**SAL/SAIL isomorphic encoding** — every SAL instruction compiles to a SAIL binary representation and every SAIL payload decompiles back to the identical SAL instruction. The mapping is bijective: no information is lost in either direction. A developer composes and debugs in SAL (human-readable), deploys in SAIL (binary, maximum compression), and can always decompile the wire payload back to readable SAL for inspection. The encoding a node transmits and the encoding an operator reads are the same instruction in two forms.\n\n**FNP handshake and SALBridge** — Two-message capability advertisement + acknowledgment (40B + 38B = 78 bytes total). Negotiates dictionary alignment, namespace intersection, and channel capacity in two LoRa packets. Implemented in all three SDKs with byte-identical wire format. Channel capacity negotiation selects the LCD of both nodes, so the mesh scales within the most constrained link. When FNP detects a non-OSMP peer (timeout or invalid response), the session transitions to FALLBACK. The SALBridge then handles boundary translation: outbound SAL is decoded to annotated natural language, inbound messages are scanned for SAL acquisition. Peers that learn SAL through contextual exposure transition to ACQUIRED. Regression detection drops acquired peers back to FALLBACK if they stop producing valid SAL.\n\n**ADP dictionary synchronization** — The ASD Distribution Protocol keeps dictionaries aligned across nodes after initial FNP handshake. Delta-based updates decompose dictionary changes into independently parseable units, each carrying a version pointer and a tripartite resolution flag (additive, superseding replacement with mandatory retransmission, or deprecation). Nodes apply deltas as they arrive and operate in a partially updated but internally consistent state during synchronization. Instructions referencing opcodes whose defining delta has not yet arrived are held in a semantic pending queue and resolved on receipt. MAJOR.MINOR version signaling detects breaking changes. The guaranteed minimum operational vocabulary floor ensures every node can decode baseline instructions regardless of synchronization state. Implemented in the Python SDK with 69 tests passing.\n\n**Sovereign namespace extension** — `Ω:` (U+03A9) allows any implementing party to define proprietary namespace extensions without central approval or registration.\n\n---\n\n## What Requires Future Work\n\n**C++ firmware-level OSMP nodes** — OSMP integration with Meshtastic via the Python SDK and Meshtastic Python library is operational today (see CONTRIBUTING.md). The C++ contribution target is a firmware-level encoder/decoder enabling ESP32 and nRF52 Meshtastic devices to operate as sovereign OSMP nodes without a companion device, with the ASD compiled into flash.\n\n**Additional MDR namespaces** — SNOMED CT, RxNorm, LOINC, and other open registries are future namespace targets.\n\n---\n\n## Namespaces\n\n```\nA  Agentic/OSMP-Native     M  Municipal Operations\nB  Building/Construction   N  Network/Routing\nC  Compute/Resource Mgmt   O  Operational Context/Environment\nD  Data/Query/File Transfer P  Procedural/Maintenance\nE  Environmental/Sensor    Q  Quality/Evaluation/Grounding  ← AI-native\nF  Federal/Regulatory      R  Robotic/Physical Agent\nG  Geospatial/Navigation   S  Security/Cryptographic\nH  Health/Clinical         T  Time/Scheduling\nI  Identity/Permissioning  U  User/Human Interaction\nJ  Cognitive Exec State ← AI-native  V  Vehicle/Transport Fleet\nK  Financial/Transaction   W  Weather/External Environment\nL  Logging/Audit/Compliance X  Energy/Power Systems\n                            Y  Memory + Retrieval     ← AI-native\n                            Z  Model/Inference Ops    ← AI-native\n                           Ω:  Sovereign Extension\n```\n\n---\n\n## Example Instructions\n\n```\n# Environmental query\nEQ@4A?TH:0\n→ \"Node 4A, report temperature at offset zero.\"  76.7% reduction\n\n# Emergency broadcast\nMA@*!EVA\n→ \"Broadcast evacuation to all nodes.\"  81.8% reduction\n\n# MEDEVAC threshold alert\nH:HR@NODE1\u003e120→H:CASREP∧M:EVA@*\n→ \"If heart rate exceeds 120, assemble CASREP and broadcast evacuation.\"  65.0% reduction\n\n# Clinical with ICD-10 Layer 2 accessor (functional today)\nH:HR\u003c60→H:ALERT[BRADYCARDIA]∧H:ICD[R00.1]\n→ \"If heart rate below 60, alert bradycardia with ICD-10 code.\"\n\n# Two-tier corpus encoding\nD:PACK@CORPUS∧D:UNPACK[query]\n→ Encode corpus for at-rest storage; retrieve by ASD lookup without decompression.\n\n# Atomic financial instruction\nK:PAY@RECV↔I:§→K:XFR[AMT]\n→ \"Execute payment iff human confirmation received, then transfer asset.\"  70.3% reduction\n\n# Internet-uplink capability-addressed routing\n∃N:INET→A:DA@RELAY1\n→ \"Route to any node with internet uplink, delegate to relay.\"\n\n# AI cognitive pipeline\nJ:GOAL∧Y:SEARCH∧Z:INF∧Q:GROUND\n→ \"Declare goal, retrieve from memory, invoke inference, verify grounding.\"\n```\n\n---\n\n## Repository Structure\n\n```\ncloudless-sky/\n  protocol/\n    spec/           \u003c- OSMP-SPEC-v1.0.2.md -- authoritative protocol specification\n    grammar/        \u003c- SAL-grammar.ebnf -- formal grammar (EBNF)\n    test-vectors/   \u003c- canonical-test-vectors.json -- conformance suite\n  sdk/\n    python/\n      osmp/         \u003c- Package: pip install osmp (encode, decode, validate)\n      src/          \u003c- Reference single-file implementation\n    typescript/     \u003c- OpenClaw/web SDK (fzstd for D:PACK/BLK)\n    go/             \u003c- PicoClaw/constrained hardware SDK\n  mcp/\n    server.py       \u003c- MCP server (pip install osmp-mcp)\n    server.json     \u003c- MCP Registry descriptor\n  mdr/\n    icd10cm/        \u003c- CMS FY2026 ICD-10-CM (74,719 codes, 477KB)\n    iso20022/       \u003c- ISO 20022 eRepository (47,835 elements, 1.2MB)\n    mitre-attack/   \u003c- MITRE ATT\u0026CK Enterprise v18.1 (1,661 entries, 20KB)\n    meshtastic/     \u003c- Meshtastic macro corpus (16 macros)\n  benchmarks/\n    sal-vs-json/    \u003c- 29-vector framework benchmark, four-way comparison, grammar analysis\n  docs/\n    SAL-efficiency-analysis.md  \u003c- Whitepaper v2.0: structural efficiency analysis\n    adr/            \u003c- Architecture Decision Records\n  tests/\n    tier1/          \u003c- Unit tests per SDK + D:PACK/BLK resolve tests\n    tier2/          \u003c- Cross-SDK wire compatibility\n    tier3/          \u003c- Tier 3 DAG decomposition tests (Python, TypeScript, Go)\n```\n\n---\n\n## Contributing\n\nSee [`CONTRIBUTING.md`](CONTRIBUTING.md). The spec is authoritative. All SDK implementations are validated against the canonical test vectors. A conformant implementation must achieve ≥60% mean UTF-8 byte reduction with zero decode errors.\n\nMeshtastic integration via the Python SDK and Meshtastic Python library is operational today with no additional code required. See CONTRIBUTING.md for details.\n\nWanted: C++ firmware-level encoder/decoder (ESP32/nRF52 sovereign nodes), Kotlin/Swift mobile SDKs.\n\n---\n\n## Patent Notice\n\nPatent pending. Apache 2.0 includes an express patent grant for implementations of this specification. See [`PATENT-NOTICE.md`](PATENT-NOTICE.md).\n\n---\n\n## License\n\nApache 2.0 — see [`LICENSE`](LICENSE).\n\n---\n\n*Cloudless Sky is a project of Octid.*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foctid-io%2Fcloudless-sky","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foctid-io%2Fcloudless-sky","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foctid-io%2Fcloudless-sky/lists"}