@adhdev/mesh-shared 1.0.58-rc.1 → 1.0.58-rc.3
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/index.js.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/magi.d.ts +32 -0
- package/package.json +1 -1
- package/src/magi.ts +32 -0
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
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. */
|