converse-mcp-server 4.1.0 → 4.1.1

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/docs/API.md CHANGED
@@ -445,13 +445,13 @@ Each provider call retries timeouts, 408, 429 and 5xx with backoff, honoring `Re
445
445
 
446
446
  ### Response Format
447
447
 
448
- A one-line summary per answer, followed by the answers in the same JSON shape whichever provider served them:
448
+ A one-line summary per answer (options at 0.00 omitted), followed by the answers with full distributions, in the same JSON shape whichever provider served them:
449
449
 
450
450
  ````
451
451
  Decision · typesafe/jev-1.13-20260917 via OpenRouter · 394 input tokens · $0.000017
452
452
  - urgent (noul): 0.97
453
- - team (choice): billing · confidence 1.00 · billing 1.00, technical 0.00, sales 0.00
454
- - frustration (score): 1.24 on 0–2 · confidence 0.64 · 1 Frustrated 0.76, 2 Very angry 0.24, 0 Calm 0.00
453
+ - team (choice): billing · confidence 1.00 · billing 1.00
454
+ - frustration (score): 1.24 on 0–2 · confidence 0.64 · 1 Frustrated 0.76, 2 Very angry 0.24
455
455
 
456
456
  ```json
457
457
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "converse-mcp-server",
3
- "version": "4.1.0",
3
+ "version": "4.1.1",
4
4
  "description": "Converse MCP Server - Converse with other LLMs with chat and consensus tools",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
@@ -148,8 +148,13 @@ function fixed(n) {
148
148
  return typeof n === 'number' ? n.toFixed(2) : String(n);
149
149
  }
150
150
 
151
+ /**
152
+ * Options at or rounding to zero are left out of the summary line; the JSON
153
+ * block still carries the full distribution.
154
+ */
151
155
  function byProbability(probabilities, label = (k) => k) {
152
156
  return Object.entries(probabilities || {})
157
+ .filter(([, p]) => fixed(p) !== '0.00')
153
158
  .sort(([, a], [, b]) => b - a)
154
159
  .map(([k, p]) => `${label(k)} ${fixed(p)}`)
155
160
  .join(', ');
@@ -261,9 +266,11 @@ decideTool.description =
261
266
  'DECIDE — ask a System One decision model (TypeSafe Jev) typed questions about a state and get calibrated answers, not text. ' +
262
267
  'Question types: "noul" (yes/no → probability 0..1), "choice" (pick one of 2–255 named options → choice, per-option probabilities, confidence), ' +
263
268
  '"score" (ordered rubric of 2–10 levels → weighted position, per-level probabilities, confidence). ' +
264
- 'Batch many questions into one call: they are judged in parallel and in isolation against the same state at almost no extra cost. ' +
265
- 'Best for fast atomic judgments (classify, route, verify, rank). Keep each question literal and narrow; do counting, arithmetic, and date comparison in code; ' +
266
- 'split compound judgments into separate questions; treat low confidence as a signal to escalate. Text only, no explanations are returned. ' +
269
+ 'Batch independent questions over the same state into one call: they are judged in parallel and in isolation, so none sees another\'s answer; each extra question adds its own input tokens. ' +
270
+ 'Best for fast semantic judgments (classify, route, select, verify, rank). Ask one narrow, coherent judgment per question, with its full meaning in the question; ' +
271
+ 'split independently useful dimensions, but a bounded action choice or contextual interpretation is a valid single question. Do counting, arithmetic, and date comparison in code. ' +
272
+ 'confidence measures how concentrated the distribution is, not permission to act: take the top option to pick a best, and treat a noul near 0.5 as "yes and no equally likely". ' +
273
+ 'Text only, no explanations are returned. ' +
267
274
  'Limits: ~64k tokens per request, ~32k for state plus the longest question.';
268
275
 
269
276
  decideTool.inputSchema = {