@adhdev/mesh-shared 1.0.58-rc.1 → 1.0.58-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/magi.d.ts CHANGED
@@ -24,6 +24,38 @@
24
24
  * launch; `capabilityTags` route by tag when no nodeId is given; `n` is an optional
25
25
  * per-slot replica count. This is the SOLE panel-member shape — the fan-out planner
26
26
  * (buildMagiFanoutPlan) resolves a `MagiSlot[]` directly.
27
+ *
28
+ * ─── DELIBERATELY REDUCED SCHEMA — not a missing feature ─────────────────────
29
+ *
30
+ * A MagiSlot is a strict subset of a node's `NodeCapabilitySlot`. It accepts
31
+ * `provider` + optional `model` / `nodeId` / `capabilityTags` / `n`, and it
32
+ * deliberately does NOT accept the node-capability routing axes — `thinkingLevel`,
33
+ * `difficulty`, `maxParallel`. That asymmetry is the design, not an oversight:
34
+ *
35
+ * - A node capability slot answers **"which work goes where"** — routing FITNESS.
36
+ * Difficulty and thinking level exist there to match a task against the slot best
37
+ * suited to run it.
38
+ * - A MAGI panel slot answers **"who answers independently"** — cross-verification
39
+ * DIVERSITY. Its whole value is that the replicas are NOT selected for fitness.
40
+ *
41
+ * Reviving the difficulty/thinking axes here would couple panel membership to routing
42
+ * optimization, and the best-fitting provider would win every slot. The panel would
43
+ * collapse toward one provider — which is precisely the failure MAGI exists to
44
+ * prevent, since agreement among coupled agents carries no information (see the
45
+ * `source_coupled` weighting in synthesis). A reduced schema is what keeps the two
46
+ * axes orthogonal.
47
+ *
48
+ * Consistent with that, `mesh_magi_review` enqueues every replica with a fixed
49
+ * `difficulty: 'freeform'` sentinel rather than a caller-chosen grade — the panel has
50
+ * already pinned the (node, provider) target, so any difficulty would be inert at best
51
+ * and would fight the panel's own slot selection at worst. To change how hard a
52
+ * replica thinks or how much parallelism a node grants, edit that NODE's capability
53
+ * slots (`mesh_node_slots_set`); it is a different axis, on purpose.
54
+ *
55
+ * Unknown keys are dropped rather than rejected, so slots written by another version
56
+ * stay readable. Write paths pair the normalizer with
57
+ * `collectIgnoredMagiSlotFields()` and report the drops as `ignoredFields`, so the
58
+ * reduction is visible instead of silent.
27
59
  */
28
60
  export interface MagiSlot {
29
61
  /** Optional — pin to a specific mesh node id. Absent → route by capabilityTags + provider. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adhdev/mesh-shared",
3
- "version": "1.0.58-rc.1",
3
+ "version": "1.0.58-rc.2",
4
4
  "description": "ADHDev mesh-shared — pure mesh/git status normalizers shared by daemon-core and web-core",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/magi.ts CHANGED
@@ -33,6 +33,38 @@
33
33
  * launch; `capabilityTags` route by tag when no nodeId is given; `n` is an optional
34
34
  * per-slot replica count. This is the SOLE panel-member shape — the fan-out planner
35
35
  * (buildMagiFanoutPlan) resolves a `MagiSlot[]` directly.
36
+ *
37
+ * ─── DELIBERATELY REDUCED SCHEMA — not a missing feature ─────────────────────
38
+ *
39
+ * A MagiSlot is a strict subset of a node's `NodeCapabilitySlot`. It accepts
40
+ * `provider` + optional `model` / `nodeId` / `capabilityTags` / `n`, and it
41
+ * deliberately does NOT accept the node-capability routing axes — `thinkingLevel`,
42
+ * `difficulty`, `maxParallel`. That asymmetry is the design, not an oversight:
43
+ *
44
+ * - A node capability slot answers **"which work goes where"** — routing FITNESS.
45
+ * Difficulty and thinking level exist there to match a task against the slot best
46
+ * suited to run it.
47
+ * - A MAGI panel slot answers **"who answers independently"** — cross-verification
48
+ * DIVERSITY. Its whole value is that the replicas are NOT selected for fitness.
49
+ *
50
+ * Reviving the difficulty/thinking axes here would couple panel membership to routing
51
+ * optimization, and the best-fitting provider would win every slot. The panel would
52
+ * collapse toward one provider — which is precisely the failure MAGI exists to
53
+ * prevent, since agreement among coupled agents carries no information (see the
54
+ * `source_coupled` weighting in synthesis). A reduced schema is what keeps the two
55
+ * axes orthogonal.
56
+ *
57
+ * Consistent with that, `mesh_magi_review` enqueues every replica with a fixed
58
+ * `difficulty: 'freeform'` sentinel rather than a caller-chosen grade — the panel has
59
+ * already pinned the (node, provider) target, so any difficulty would be inert at best
60
+ * and would fight the panel's own slot selection at worst. To change how hard a
61
+ * replica thinks or how much parallelism a node grants, edit that NODE's capability
62
+ * slots (`mesh_node_slots_set`); it is a different axis, on purpose.
63
+ *
64
+ * Unknown keys are dropped rather than rejected, so slots written by another version
65
+ * stay readable. Write paths pair the normalizer with
66
+ * `collectIgnoredMagiSlotFields()` and report the drops as `ignoredFields`, so the
67
+ * reduction is visible instead of silent.
36
68
  */
37
69
  export interface MagiSlot {
38
70
  /** Optional — pin to a specific mesh node id. Absent → route by capabilityTags + provider. */