@endiagram/mcp 0.3.5 → 0.3.6

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.
Files changed (3) hide show
  1. package/README.md +4 -0
  2. package/package.json +1 -1
  3. package/tools.json +1 -1
package/README.md CHANGED
@@ -104,6 +104,10 @@ kitchen do: prepare food needs: order yields: meal
104
104
  waiter do: deliver needs: meal yields: served customer
105
105
  ```
106
106
 
107
+ ## Modeling
108
+
109
+ Same name = same thing. Put all required inputs in one `needs:` list (AND). Give two actions the same yield-name to offer alternatives (OR). Sequence = one action consuming another's yield. Re-yield stateful resources to keep them persistent; one-shot data stays consumed. Model at the real atomic granularity — split only when the pieces could be accessed independently.
110
+
107
111
  Learn more at [endiagram.com](https://endiagram.com).
108
112
 
109
113
  ## Telemetry
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@endiagram/mcp",
3
- "version": "0.3.5",
3
+ "version": "0.3.6",
4
4
  "description": "MCP server for EN Diagram — six questions about any system (structure, invariants, liveness, reachability, equivalence, composition) answered with graph theory. Plus a render tool. Pure math, no AI inside the computation.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/tools.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "instructions": "EN Diagram — structural verification for concurrent systems. Pure math, no AI.\n\n## Syntax\nOne statement per line:\n actor do: action needs: input1, input2 yields: output1, output2 at: context\n\n- All five parts required.\n- Names span words; whitespace preserved. Quote only if name contains `,`, `:`, or `#`.\n- Shared names = connections: one action's `yields:` matching another's `needs:` wires them automatically. String equality is the link.\n- Multi-actor: `a, b do: action needs: X yields: Y` = one joint action. Identical statements merge.\n- `#` starts a comment.\n\n## Tools (six questions + levers)\n1. structure — what is this system? detect_findings=true flags unguarded-sink, single-cut-path, multi-cut-path. node=X returns per-node centrality.\n2. invariant — what's always true? rules (one per line) check custom claims; 4 shapes: `no bridge that is also hub` | `every path from X to Y passes through at least one of [A,B,C]` (precedence) | `no node with centrality above N` | `removing any single node disconnects at most N others`.\n3. live — can it deadlock or overflow?\n4. reachable — can X reach Y? defense_nodes=a,b,c checks guard coverage.\n5. equivalent — are two systems the same? compare: source_a+source_b. evolve: source+patch (plain EN adds, `- name` removes, same-name replaces).\n6. compose — how do parts combine? merge: source_a+source_b+links (`a.entity=b.entity` per line). extract: source+subsystem (names from structure.subsystems).\n\n## How to use them\nEvery tool output contains node names, values, and structural properties that can be fed directly into other tools. Read the output. Find the surprising node, the unexpected value, the structural anomaly. Then pick the tool that investigates THAT specific finding.\n\nDo not stop at one tool call. The first call reveals the structure — the real insight comes from the second, third, fourth call that digs into what the first one found.\n\nSpeak in the user's domain, not in graph theory. Only call render when the user explicitly asks to visualize.",
2
+ "instructions": "EN Diagram — structural verification for concurrent systems. Pure math, no AI.\n\n## Syntax\nOne statement per line:\n actor do: action needs: input1, input2 yields: output1, output2 at: context\n\n- All five parts required.\n- Names span words; whitespace preserved. Quote only if name contains `,`, `:`, or `#`.\n- Shared names = connections: one action's `yields:` matching another's `needs:` wires them automatically. String equality is the link.\n- Multi-actor: `a, b do: action needs: X yields: Y` = one joint action. Identical statements merge.\n- `#` starts a comment.\n\n## Modeling\nSame name = same thing. Put all required inputs in one `needs:` list (AND). Give two actions the same yield-name to offer alternatives (OR). Sequence = one action consuming another's yield. Re-yield stateful resources to keep them persistent; one-shot data stays consumed. Model at the real atomic granularity — split only when the pieces could be accessed independently.\n\n## Tools (six questions + levers)\n1. structure — what is this system? detect_findings=true flags unguarded-sink, single-cut-path, multi-cut-path. node=X returns per-node centrality.\n2. invariant — what's always true? rules (one per line) check custom claims; 4 shapes: `no bridge that is also hub` | `every path from X to Y passes through at least one of [A,B,C]` (precedence) | `no node with centrality above N` | `removing any single node disconnects at most N others`.\n3. live — can it deadlock or overflow?\n4. reachable — can X reach Y? defense_nodes=a,b,c checks guard coverage.\n5. equivalent — are two systems the same? compare: source_a+source_b. evolve: source+patch (plain EN adds, `- name` removes, same-name replaces).\n6. compose — how do parts combine? merge: source_a+source_b+links (`a.entity=b.entity` per line). extract: source+subsystem (names from structure.subsystems).\n\n## How to use them\nEvery tool output contains node names, values, and structural properties that can be fed directly into other tools. Read the output. Find the surprising node, the unexpected value, the structural anomaly. Then pick the tool that investigates THAT specific finding.\n\nDo not stop at one tool call. The first call reveals the structure — the real insight comes from the second, third, fourth call that digs into what the first one found.\n\nSpeak in the user's domain, not in graph theory. Only call render when the user explicitly asks to visualize.",
3
3
  "tools": [
4
4
  {
5
5
  "name": "structure",