GitHub Action commited on
Commit ·
beae091
1
Parent(s): 2208755
Sync from GitHub with Git LFS
Browse files- docs/HMP-0005.md +101 -18
docs/HMP-0005.md
CHANGED
|
@@ -1424,9 +1424,11 @@ It provides **container synchronization without duplication** while considering
|
|
| 1424 |
|
| 1425 |
### 5.1 General principles
|
| 1426 |
|
| 1427 |
-
1. Each agent maintains a **Container Index** — a set of minimal metadata describing which containers are available in its storage.
|
| 1428 |
The index is represented as an HMP container with the class `container_index`.
|
| 1429 |
|
|
|
|
|
|
|
| 1430 |
2. Example structure of a *Container Index*:
|
| 1431 |
|
| 1432 |
```json
|
|
@@ -1447,6 +1449,21 @@ It provides **container synchronization without duplication** while considering
|
|
| 1447 |
"signature": "BASE64URL(...)",
|
| 1448 |
"payload_hash": "sha256:abcd...",
|
| 1449 |
"tags": ["research", "collaboration"],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1450 |
"related": {
|
| 1451 |
"in_reply_to": ["did:hmp:container:msg-77"],
|
| 1452 |
"depends_on": ["did:hmp:container:goal-953"]
|
|
@@ -1457,20 +1474,57 @@ It provides **container synchronization without duplication** while considering
|
|
| 1457 |
}
|
| 1458 |
}
|
| 1459 |
}
|
| 1460 |
-
```
|
|
|
|
|
|
|
| 1461 |
|
| 1462 |
-
The index
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1463 |
|
| 1464 |
-
*
|
| 1465 |
-
* container type (`class`);
|
| 1466 |
-
* cryptographic attributes (`public_key`, `signature`, `payload_hash`);
|
| 1467 |
-
* tags (`tags`);
|
| 1468 |
-
* related containers object (`related`);
|
| 1469 |
-
* hash of containers referencing this one (`referenced-by_hash`);
|
| 1470 |
-
* hash of evaluation block (`evaluations_hash`).
|
| 1471 |
|
| 1472 |
-
|
| 1473 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1474 |
|
| 1475 |
---
|
| 1476 |
|
|
@@ -1552,8 +1606,13 @@ This message type replicates the structure of a `container_index` container and
|
|
| 1552 |
|
| 1553 |
**4. container_delta**
|
| 1554 |
|
| 1555 |
-
|
| 1556 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1557 |
|
| 1558 |
```json
|
| 1559 |
{
|
|
@@ -1565,15 +1624,39 @@ Used for synchronizing only new or modified containers:
|
|
| 1565 |
"did:hmp:container:new789": {
|
| 1566 |
"class": "goal",
|
| 1567 |
"payload_hash": "sha256:abcd...",
|
| 1568 |
-
"tags": ["ethics", "mesh"]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1569 |
}
|
| 1570 |
},
|
| 1571 |
-
"removed": [
|
|
|
|
|
|
|
| 1572 |
}
|
| 1573 |
}
|
| 1574 |
-
```
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1575 |
|
| 1576 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1577 |
|
| 1578 |
---
|
| 1579 |
|
|
|
|
| 1424 |
|
| 1425 |
### 5.1 General principles
|
| 1426 |
|
| 1427 |
+
1. Each agent maintains a **Container Index** — a set of minimal metadata describing which containers are available in its storage and how they are cognitively positioned.
|
| 1428 |
The index is represented as an HMP container with the class `container_index`.
|
| 1429 |
|
| 1430 |
+
---
|
| 1431 |
+
|
| 1432 |
2. Example structure of a *Container Index*:
|
| 1433 |
|
| 1434 |
```json
|
|
|
|
| 1449 |
"signature": "BASE64URL(...)",
|
| 1450 |
"payload_hash": "sha256:abcd...",
|
| 1451 |
"tags": ["research", "collaboration"],
|
| 1452 |
+
"meta": {
|
| 1453 |
+
"created_by": "AGENT",
|
| 1454 |
+
"agents_class": "Knowledge Genome",
|
| 1455 |
+
"abstraction": {
|
| 1456 |
+
"agents_class": "Knowledge Genome",
|
| 1457 |
+
"path": {
|
| 1458 |
+
"L1": "did:hmp:container:abstraction-root",
|
| 1459 |
+
"L2": "did:hmp:container:abstraction-l2"
|
| 1460 |
+
}
|
| 1461 |
+
},
|
| 1462 |
+
"axes": {
|
| 1463 |
+
"did:hmp:container:axis-logos": 512,
|
| 1464 |
+
"did:hmp:container:axis-telos": 321
|
| 1465 |
+
}
|
| 1466 |
+
},
|
| 1467 |
"related": {
|
| 1468 |
"in_reply_to": ["did:hmp:container:msg-77"],
|
| 1469 |
"depends_on": ["did:hmp:container:goal-953"]
|
|
|
|
| 1474 |
}
|
| 1475 |
}
|
| 1476 |
}
|
| 1477 |
+
```
|
| 1478 |
+
|
| 1479 |
+
---
|
| 1480 |
|
| 1481 |
+
3. The index includes the following fields per container:
|
| 1482 |
+
|
| 1483 |
+
| Field | Description |
|
| 1484 |
+
| --------------------------------------- | ---------------------------------------------------------------------------- |
|
| 1485 |
+
| `class` | Type of the container (e.g. `goal`, `event`, `quant`, `semantic_node`). |
|
| 1486 |
+
| `sender_did` | DID of the publishing agent. |
|
| 1487 |
+
| `public_key` / `sig_algo` / `signature` | Cryptographic verification data. |
|
| 1488 |
+
| `payload_hash` | SHA-256 hash of the payload body. Used for integrity validation and diffing. |
|
| 1489 |
+
| `tags` | High-level labels for fast search or categorization. |
|
| 1490 |
+
| `meta` | Compact version of the cognitive metadata block (see below). |
|
| 1491 |
+
| `related` | Structural relationships (`depends_on`, `in_reply_to`, etc.). |
|
| 1492 |
+
| `referenced-by_hash` | Hash of containers referencing this one (reverse index). |
|
| 1493 |
+
| `evaluations_hash` | Hash of aggregated evaluation containers (reputation layer). |
|
| 1494 |
+
|
| 1495 |
+
---
|
| 1496 |
+
|
| 1497 |
+
4. **Meta publication policy**
|
| 1498 |
+
|
| 1499 |
+
The `meta` section in the index contains only **high-level structural data** necessary for cognitive synchronization:
|
| 1500 |
+
|
| 1501 |
+
| Field | Published in index | Notes |
|
| 1502 |
+
| ---------------- | ------------------ | ------------------------------------------------------------------------- |
|
| 1503 |
+
| `created_by` | ✅ | Identifies the cognitive role of the creator. |
|
| 1504 |
+
| `agents_class` | ✅ | Indicates the cognitive framework (e.g., “Knowledge Genome”). |
|
| 1505 |
+
| `abstraction` | ✅ | Published **as a flattened path** (only DIDs of referenced abstractions). |
|
| 1506 |
+
| `axes` | ✅ | Published **as a reduced vector** (only axis DIDs and numeric values). |
|
| 1507 |
+
| `sources` | ❌ | Omitted to avoid unnecessary verbosity and sensitive references. |
|
| 1508 |
+
| `interpretation` | ❌ | Optional; can be omitted or truncated to a short summary. |
|
| 1509 |
+
| `workflow_entry` | ❌ | Internal reference; published only if relevant to coordination workflows. |
|
| 1510 |
+
|
| 1511 |
+
> This ensures that container indices can be used for **cognitive map synchronization**
|
| 1512 |
+
> — allowing agents to discover and align knowledge structures (`meta.abstraction`) and semantic coordinates (`meta.axes`)
|
| 1513 |
+
> without downloading full containers.
|
| 1514 |
+
|
| 1515 |
+
---
|
| 1516 |
|
| 1517 |
+
5. **Synchronization rules**
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1518 |
|
| 1519 |
+
* An agent does not reload a container if the combination `container_did + signature + payload_hash` is already known and verified.
|
| 1520 |
+
* When an index update includes a container with a **different meta.abstraction or meta.axes**, the agent may trigger a **cognitive map update** (refreshing local `abstraction` and `axes` references).
|
| 1521 |
+
* Agents SHOULD store and compare `meta.abstraction` and `meta.axes` separately from other metadata to support incremental updates of cognitive topology.
|
| 1522 |
+
|
| 1523 |
+
---
|
| 1524 |
+
|
| 1525 |
+
6. **Cognitive rationale**
|
| 1526 |
+
|
| 1527 |
+
By publishing the `meta` field inside `container_index`, agents can perform **structural synchronization** — aligning conceptual layers and semantic coordinates before exchanging full payloads. This dramatically reduces traffic and enables lightweight **semantic discovery** across distributed Mesh networks.
|
| 1528 |
|
| 1529 |
---
|
| 1530 |
|
|
|
|
| 1606 |
|
| 1607 |
**4. container_delta**
|
| 1608 |
|
| 1609 |
+
Used for **incremental synchronization** of container indices between agents.
|
| 1610 |
+
A `container_delta` transmits only *new or modified* containers since a given timestamp,
|
| 1611 |
+
optionally including their updated **cognitive metadata** (`meta`) for reasoning alignment.
|
| 1612 |
+
|
| 1613 |
+
---
|
| 1614 |
+
|
| 1615 |
+
**Example:**
|
| 1616 |
|
| 1617 |
```json
|
| 1618 |
{
|
|
|
|
| 1624 |
"did:hmp:container:new789": {
|
| 1625 |
"class": "goal",
|
| 1626 |
"payload_hash": "sha256:abcd...",
|
| 1627 |
+
"tags": ["ethics", "mesh"],
|
| 1628 |
+
"meta": {
|
| 1629 |
+
"agents_class": "Knowledge Genome",
|
| 1630 |
+
"abstraction": {
|
| 1631 |
+
"path": {
|
| 1632 |
+
"L1": "did:hmp:container:abstraction-40af1c",
|
| 1633 |
+
"L2": "did:hmp:container:abstraction-a7f0b3",
|
| 1634 |
+
"L3": "did:hmp:container:abstraction-c91e0a"
|
| 1635 |
+
}
|
| 1636 |
+
},
|
| 1637 |
+
"axes": {
|
| 1638 |
+
"did:hmp:container:axis-40aa1c": 522,
|
| 1639 |
+
"did:hmp:container:axis-40ab1c": 387
|
| 1640 |
+
}
|
| 1641 |
+
}
|
| 1642 |
}
|
| 1643 |
},
|
| 1644 |
+
"removed": [
|
| 1645 |
+
"did:hmp:container:goal-old331"
|
| 1646 |
+
]
|
| 1647 |
}
|
| 1648 |
}
|
| 1649 |
+
````
|
| 1650 |
+
|
| 1651 |
+
---
|
| 1652 |
+
|
| 1653 |
+
**Extended interpretation**
|
| 1654 |
|
| 1655 |
+
| Field | Description |
|
| 1656 |
+
| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
| 1657 |
+
| `since` | Timestamp (ISO 8601) indicating the reference point for incremental synchronization. Agents should only send containers modified or created after this time. |
|
| 1658 |
+
| `added` | A map of new or updated container references. Each entry minimally includes `class` and `payload_hash`, and **may include `meta`** to enable cognitive synchronization without fetching the full container. |
|
| 1659 |
+
| `removed` | Optional array of container DIDs that the agent no longer maintains (e.g., expired, deleted, or replaced containers). |
|
| 1660 |
|
| 1661 |
---
|
| 1662 |
|