GitHub Action commited on
Commit
beae091
·
1 Parent(s): 2208755

Sync from GitHub with Git LFS

Browse files
Files changed (1) hide show
  1. 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 contains:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1463
 
1464
- * the sender of the container (`sender_did`);
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
- 3. An agent does not reload a container if the combination
1473
- `container_did + signature + payload_hash` is already known and verified.
 
 
 
 
 
 
 
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
- Sending an incremental index update with a reference timestamp.
1556
- Used for synchronizing only new or modified containers:
 
 
 
 
 
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
- > The `removed` field is optional. It can be used to indicate containers that the agent no longer stores (e.g., after cleaning local storage).
 
 
 
 
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