@barivia/barsom-mcp 0.2.3 → 0.2.5

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/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @barivia/barsom-mcp
2
2
 
3
- MCP proxy for the Barivia Analytics Engine -- connects any stdio MCP client (Cursor, Claude Desktop, etc.) to the barSOM cloud API. 20 tools covering the full data analysis lifecycle: upload, preview, train, analyze, compare, and export.
3
+ MCP proxy for the Barivia Analytics Engine -- connects any stdio MCP client (Cursor, Claude Desktop, etc.) to the barSOM cloud API. 15 tools covering the full data analysis lifecycle: upload, preview, train, analyze, compare, and export.
4
4
 
5
5
  ## Installation
6
6
 
@@ -32,14 +32,14 @@ This is the standard pattern for MCP servers distributed as npm packages (same a
32
32
 
33
33
  Legacy `BARSOM_API_KEY` / `BARSOM_API_URL` are also accepted as fallbacks.
34
34
 
35
- ## Tools (19)
35
+ ## Tools (15)
36
36
 
37
37
  ### Data Management
38
38
 
39
39
  | Tool | Description |
40
40
  |---|---|
41
41
  | `upload_dataset` | Upload CSV data for SOM analysis |
42
- | `list_datasets` | List uploaded datasets with row/column counts |
42
+ | `list` | List datasets (type=datasets) or jobs (type=jobs; optional dataset_id filter) |
43
43
  | `preview_dataset` | Inspect columns, statistics, sample rows, detect datetime columns, suggest temporal features |
44
44
  | `delete_dataset` | Delete dataset and S3 artifacts |
45
45
 
@@ -49,20 +49,16 @@ Legacy `BARSOM_API_KEY` / `BARSOM_API_URL` are also accepted as fallbacks.
49
49
  |---|---|
50
50
  | `train_som` | Submit training job with full control: model type (SOM/RSOM/SOM-SOFT/RSOM-SOFT), grid size, epochs, learning rate curves, feature weights, cyclic encoding, temporal features |
51
51
  | `get_job_status` | Check training progress and estimated completion |
52
- | `cancel_job` | Cancel a pending or running job |
53
- | `list_jobs` | List all jobs with status, parameters, and timing |
54
- | `delete_job` | Delete job and all result artifacts |
52
+ | `manage_job` | Cancel (action=cancel) or delete (action=delete) a job |
55
53
 
56
54
  ### Results & Export
57
55
 
58
56
  | Tool | Description |
59
57
  |---|---|
60
58
  | `get_results` | Download results with inline images and quality metrics |
61
- | `get_training_log` | Per-epoch learning curves (QE residuals) for diagnostics |
62
- | `get_weights` | Export raw SOM weight matrix and normalization parameters |
63
- | `get_node_data` | Per-node hit counts and feature-value distributions |
59
+ | `get_job_export` | Export training_log (learning curves), weights (weight matrix + node_coords), or nodes (per-node statistics) |
64
60
 
65
- ### Analysis (9 types via `analyze`)
61
+ ### Analysis (10 types via `analyze`)
66
62
 
67
63
  | Type | Description |
68
64
  |---|---|
@@ -75,6 +71,7 @@ Legacy `BARSOM_API_KEY` / `BARSOM_API_URL` are also accepted as fallbacks.
75
71
  | `transition_flow` | Temporal trajectory analysis with quiver plots |
76
72
  | `local_density` | Node neighborhood density analysis |
77
73
  | `feature_gradient` | Spatial gradient magnitude across the SOM |
74
+ | `quality_report` | Extended quality metrics (trustworthiness, neighborhood preservation, recommendations) |
78
75
 
79
76
  ### Advanced Analysis
80
77
 
@@ -82,8 +79,7 @@ Legacy `BARSOM_API_KEY` / `BARSOM_API_URL` are also accepted as fallbacks.
82
79
  |---|---|
83
80
  | `compare_runs` | Side-by-side metric comparison across training runs |
84
81
  | `project_variable` | Project a derived variable onto a trained SOM |
85
- | `transition_flow` | Dedicated temporal flow analysis |
86
- | `quality_report` | Extended quality metrics (trustworthiness, neighborhood preservation) |
82
+ | `transition_flow` | Dedicated temporal flow analysis (submit job, poll, return flow plot) |
87
83
 
88
84
  ### System
89
85
 
package/dist/index.js CHANGED
@@ -341,7 +341,13 @@ BEFORE calling, ask the user:
341
341
  3. Any skewed columns? (suggest transforms: log, sqrt, rank)
342
342
  4. Feature weights? (weight > 1 emphasizes, 0 disables)
343
343
  5. Quick exploration or refined map?
344
- Quick: 10x10, epochs=[10,0] | Standard: 20x20, epochs=[20,10] | Refined: 30x30, epochs=[40,20]
344
+
345
+ PRESET TABLE:
346
+ | preset | grid | epochs | batch_size |
347
+ | quick | 15x15 | [10, 0] | 64 |
348
+ | standard | 25x25 | [20, 10] | 64 |
349
+ | refined | 40x40 | [40, 20] | 32 |
350
+ | high_res | 60x60 | [50, 30] | 32 |
345
351
 
346
352
  TRAINING PHASES:
347
353
  - Ordering: large neighborhoods → global structure. sigma_f controls end-radius (default 1.0).
@@ -364,7 +370,7 @@ COMMON MISTAKES:
364
370
  - Not log-transforming skewed columns → a few outliers dominate the normalization.
365
371
  - Using default batch_size for quality-sensitive work: set batch_size=32–64 for sharper maps.
366
372
  - Skipping convergence phase: ordering alone gives rough structure; convergence refines it.
367
- - Not checking get_training_log: if QE is still dropping, add more epochs.
373
+ - Not checking get_job_export(export="training_log"): if QE is still dropping, add more epochs.
368
374
 
369
375
  QUALITY TARGETS: QE < 1.5 good, TE < 0.05 good, explained variance > 0.8 good.
370
376
  If QE > 2 → more epochs or larger grid. If TE > 0.15 → larger grid or periodic=true.
@@ -393,10 +399,22 @@ See docs/SOM_PROCESS_AND_BEST_PRACTICES.md for detailed processual knowledge.`,
393
399
  .int()
394
400
  .optional()
395
401
  .describe("Grid height (omit for auto from data size)"),
396
- epochs: z
402
+ epochs: z.preprocess((v) => {
403
+ if (v === undefined || v === null)
404
+ return v;
405
+ if (typeof v === "string") {
406
+ const n = parseInt(v, 10);
407
+ if (!Number.isNaN(n))
408
+ return n;
409
+ const m = v.match(/^\[\s*(\d+)\s*,\s*(\d+)\s*\]$/);
410
+ if (m)
411
+ return [parseInt(m[1], 10), parseInt(m[2], 10)];
412
+ }
413
+ return v;
414
+ }, z
397
415
  .union([z.number().int(), z.array(z.number().int()).length(2)])
398
416
  .optional()
399
- .describe("Epochs: integer or [ordering, convergence]. Set convergence=0 to skip phase 2 (e.g. [15, 0])."),
417
+ .describe("epochs: integer or [ordering, convergence] array, not a string. Example: 40 or [40, 20]. Set convergence=0 to skip phase 2 (e.g. [15, 0]).")),
400
418
  model: z
401
419
  .enum(["SOM", "RSOM", "SOM-SOFT", "RSOM-SOFT"])
402
420
  .optional()
@@ -614,6 +632,8 @@ TIMING: Near-instant (reads pre-computed results from S3).
614
632
 
615
633
  Returns: text summary with metrics and inline images (combined view and all plots shown directly in chat).
616
634
 
635
+ DOWNLOAD LINKS: Links to API-domain or presigned URLs may not work when clicked (MCP holds the API key, not the browser). Images are inlined. For weights use get_job_export(export="weights"); for node stats use get_job_export(export="nodes"). If the user wants to save a file, offer to fetch via the appropriate tool.
636
+
617
637
  OPTIONS:
618
638
  - include_individual=true: shows each component plane, U-matrix, and hit histogram
619
639
  as separate inline images. Best for side-by-side feature comparison.
@@ -627,8 +647,8 @@ AFTER showing results, guide the user:
627
647
  6. If explained variance < 0.7: suggest transforms, feature selection, or more training
628
648
 
629
649
  WORKFLOW: get_results → analyze(clusters) → component_planes → feature_correlation.
630
- Use get_training_log() for the learning curve (QE vs epoch — healthy=steady decline then plateau).
631
- Use quality_report() for extended metrics (trustworthiness, neighborhood preservation).
650
+ Use get_job_export(export="training_log") for the learning curve (QE vs epoch — healthy=steady decline then plateau).
651
+ Use analyze(job_id, "quality_report") for extended metrics (trustworthiness, neighborhood preservation).
632
652
 
633
653
  METRIC INTERPRETATION:
634
654
  - QE < 1.5: good fit. QE > 2: consider more epochs, larger grid, or batch_size=32.
@@ -727,7 +747,7 @@ METRIC INTERPRETATION:
727
747
  ` Davies-Bouldin: ${fmt(summary.davies_bouldin)} (lower is better)`,
728
748
  ` Calinski-Harabasz: ${fmt(summary.calinski_harabasz)} (higher is better)`,
729
749
  ordErrors && ordErrors.length > 0
730
- ? ` Final ordering QE: ${ordErrors.at(-1)?.toFixed(4)} (use get_training_log for full curve)`
750
+ ? ` Final ordering QE: ${ordErrors.at(-1)?.toFixed(4)} (use get_job_export(export="training_log") for full curve)`
731
751
  : "",
732
752
  ``,
733
753
  `Features: ${features.join(", ")}`,
@@ -738,7 +758,7 @@ METRIC INTERPRETATION:
738
758
  ? `Transforms: ${Object.entries(summary.transforms).map(([k, v]) => `${k}=${v}`).join(", ")}`
739
759
  : "",
740
760
  ``,
741
- `Use analyze() for deeper insights, quality_report() for extended metrics, get_training_log() for learning curves.`,
761
+ `Use analyze() for deeper insights and quality_report; get_job_export(export="training_log") for learning curves.`,
742
762
  ]
743
763
  .filter((l) => l !== "")
744
764
  .join("\n");
@@ -768,7 +788,7 @@ METRIC INTERPRETATION:
768
788
  }
769
789
  }
770
790
  }
771
- // Inline remaining image files; for JSON provide download URL as text
791
+ // Inline remaining image files; for JSON provide tool hints (no clickable URLs — auth required)
772
792
  const files = summary.files ?? [];
773
793
  const isImage = (f) => f.endsWith(".png") || f.endsWith(".svg") || f.endsWith(".pdf");
774
794
  for (const fname of files) {
@@ -776,12 +796,16 @@ METRIC INTERPRETATION:
776
796
  await tryAttachImage(content, job_id, fname);
777
797
  }
778
798
  else if (fname.endsWith(".json")) {
779
- const url = downloadUrls[fname] ??
780
- `${API_URL}/v1/results/${job_id}/image/${fname}`;
781
- content.push({
782
- type: "text",
783
- text: `Download ${fname}: ${url}`,
784
- });
799
+ const hint = fname === "weights.json"
800
+ ? `Use get_job_export(export="weights") for full weight matrix including node_coords.`
801
+ : fname === "node_stats.json"
802
+ ? `Use get_job_export(export="nodes") for per-node statistics.`
803
+ : fname === "summary.json"
804
+ ? null
805
+ : `Use get_job_export for structured data (weights or nodes).`;
806
+ if (hint) {
807
+ content.push({ type: "text", text: `${fname}: ${hint}` });
808
+ }
785
809
  }
786
810
  }
787
811
  return { content };
@@ -809,6 +833,8 @@ Available analysis types and when to use them:
809
833
  high-density regions? Do they correspond to known operating modes?"
810
834
  feature_gradient — Spatial rate of change per feature. Ask: "Where does this
811
835
  feature change most rapidly? Does it align with cluster boundaries?"
836
+ quality_report — Comprehensive quality report: QE, TE, silhouette, trustworthiness,
837
+ neighborhood preservation, topographic product, and recommendations.
812
838
 
813
839
  WORKFLOW RECOMMENDATION:
814
840
  1. Start with clusters → check quality metrics and recommendations
@@ -835,6 +861,7 @@ INTERPRETATION TIPS:
835
861
  "transition_flow",
836
862
  "local_density",
837
863
  "feature_gradient",
864
+ "quality_report",
838
865
  ])
839
866
  .describe("Type of analysis to run"),
840
867
  params: z
@@ -1063,6 +1090,64 @@ INTERPRETATION TIPS:
1063
1090
  }
1064
1091
  await tryAttachImage(content, job_id, `umatrix.${ext}`);
1065
1092
  }
1093
+ else if (analysis_type === "quality_report") {
1094
+ const qrData = (await apiCall("GET", `/v1/results/${job_id}/quality-report`));
1095
+ const std = qrData.standard_metrics ?? {};
1096
+ const clust = qrData.cluster_metrics ?? {};
1097
+ const topo = qrData.topology_metrics ?? {};
1098
+ const train = qrData.training ?? {};
1099
+ const qrGrid = qrData.grid ?? [0, 0];
1100
+ const fmt = (v) => v !== null && v !== undefined ? v.toFixed(4) : "—";
1101
+ const fmtPct = (v) => v !== null && v !== undefined ? `${(v * 100).toFixed(1)}%` : "—";
1102
+ const recommendations = [];
1103
+ const qe = std.quantization_error;
1104
+ const te = std.topographic_error;
1105
+ const ev = std.explained_variance;
1106
+ const sil = clust.silhouette;
1107
+ const trust = topo.trustworthiness;
1108
+ if (qe !== null && qe !== undefined && qe > 2.0)
1109
+ recommendations.push("QE is high → try more epochs or a larger grid");
1110
+ if (te !== null && te !== undefined && te > 0.15)
1111
+ recommendations.push("TE is high → topology is not well-preserved, try larger grid");
1112
+ if (ev !== null && ev !== undefined && ev < 0.7)
1113
+ recommendations.push("Explained variance < 70% → consider more training or feature selection");
1114
+ if (sil !== null && sil !== undefined && sil < 0.1)
1115
+ recommendations.push("Low silhouette → clusters overlap, try sigma_f=0.5 or more epochs");
1116
+ if (trust !== null && trust !== undefined && trust < 0.85)
1117
+ recommendations.push("Trustworthiness < 85% → local neighborhood structure is distorted");
1118
+ if (recommendations.length === 0)
1119
+ recommendations.push("All metrics look healthy — good map quality!");
1120
+ const epochs = train.epochs;
1121
+ const epochStr = epochs
1122
+ ? epochs[1] === 0 ? `${epochs[0]} ordering only` : `${epochs[0]}+${epochs[1]}`
1123
+ : "—";
1124
+ const qrLines = [
1125
+ `Quality Report — Job ${job_id}`,
1126
+ `Grid: ${qrGrid[0]}×${qrGrid[1]} | Model: ${qrData.model ?? "SOM"} | Samples: ${qrData.n_samples ?? "?"}`,
1127
+ `Epochs: ${epochStr} | Duration: ${train.duration_seconds ? `${train.duration_seconds}s` : "—"}`,
1128
+ ``,
1129
+ `Standard Metrics:`,
1130
+ ` Quantization Error: ${fmt(std.quantization_error)} (lower is better)`,
1131
+ ` Topographic Error: ${fmt(std.topographic_error)} (lower is better)`,
1132
+ ` Distortion: ${fmt(std.distortion)}`,
1133
+ ` Kaski-Lagus Error: ${fmt(std.kaski_lagus_error)} (lower is better)`,
1134
+ ` Explained Variance: ${fmtPct(std.explained_variance)}`,
1135
+ ``,
1136
+ `Cluster Quality Metrics:`,
1137
+ ` Silhouette Score: ${fmt(clust.silhouette)} (higher is better, -1 to +1)`,
1138
+ ` Davies-Bouldin: ${fmt(clust.davies_bouldin)} (lower is better)`,
1139
+ ` Calinski-Harabasz: ${fmt(clust.calinski_harabasz)} (higher is better)`,
1140
+ ``,
1141
+ `Topology Metrics:`,
1142
+ ` Neighborhood Preservation: ${fmtPct(topo.neighborhood_preservation)} (higher is better)`,
1143
+ ` Trustworthiness: ${fmtPct(topo.trustworthiness)} (higher is better)`,
1144
+ ` Topographic Product: ${fmt(topo.topographic_product)} (near 0 is ideal)`,
1145
+ ``,
1146
+ `Recommendations:`,
1147
+ ...recommendations.map((r) => ` • ${r}`),
1148
+ ];
1149
+ content.push({ type: "text", text: qrLines.join("\n") });
1150
+ }
1066
1151
  return { content };
1067
1152
  });
1068
1153
  // ---- compare_runs ----
@@ -1109,32 +1194,20 @@ After comparing, ask the user:
1109
1194
  content: [{ type: "text", text: lines.join("\n") }],
1110
1195
  };
1111
1196
  });
1112
- // ---- cancel_job ----
1113
- server.tool("cancel_job", `Cancel a pending or running job.
1114
-
1115
- TIMING: Cancellation is not instant — the worker checks between training phases.
1116
- Expect up to 30s delay for the job to actually stop.
1117
-
1118
- Use when a training run is too slow, wrong parameters were submitted, or you
1119
- want to free the worker for a different job. Partial results are discarded.
1120
- After cancelling, submit a new job with corrected parameters.`, {
1121
- job_id: z.string().describe("Job ID to cancel"),
1122
- }, async ({ job_id }) => {
1123
- const data = await apiCall("POST", `/v1/jobs/${job_id}/cancel`);
1124
- return textResult(data);
1125
- });
1126
- // ---- delete_job ----
1127
- server.tool("delete_job", `Delete a job and all its S3 result files.
1128
-
1129
- Use when:
1130
- - Cleaning up old or failed jobs to free storage
1131
- - Removing test runs before going to production
1132
- - The job is cancelled and you no longer need the record
1133
-
1134
- WARNING: This permanently deletes all result files (images, weights, node stats).
1135
- The job ID will no longer be usable with get_results or any other tools.`, {
1136
- job_id: z.string().describe("Job ID to delete"),
1137
- }, async ({ job_id }) => {
1197
+ // ---- manage_job ----
1198
+ server.tool("manage_job", `Cancel or delete a job.
1199
+
1200
+ action=cancel: Cancel a pending or running job. Not instant — worker checks between phases (expect up to 30s). Use when run is too slow, wrong params, or to free the worker. Partial results discarded.
1201
+ action=delete: Permanently delete a job and all S3 result files. Use to free storage, remove test runs, or clean up after cancel. WARNING: Job ID will no longer work with get_results or other tools.`, {
1202
+ job_id: z.string().describe("Job ID to cancel or delete"),
1203
+ action: z
1204
+ .enum(["cancel", "delete"])
1205
+ .describe("cancel: stop the job; delete: remove job and all result files"),
1206
+ }, async ({ job_id, action }) => {
1207
+ if (action === "cancel") {
1208
+ const data = await apiCall("POST", `/v1/jobs/${job_id}/cancel`);
1209
+ return textResult(data);
1210
+ }
1138
1211
  const data = await apiCall("DELETE", `/v1/jobs/${job_id}`);
1139
1212
  return textResult(data);
1140
1213
  });
@@ -1240,186 +1313,130 @@ server.tool("delete_dataset", "Delete a dataset and its stored data. Frees a dat
1240
1313
  const data = await apiCall("DELETE", `/v1/datasets/${dataset_id}`);
1241
1314
  return textResult(data);
1242
1315
  });
1243
- // ---- list_datasets ----
1244
- server.tool("list_datasets", `List all datasets uploaded by the current organization.
1245
-
1246
- Use this to check what data is available before calling train_som,
1247
- or to find dataset IDs for datasets that were uploaded previously.`, {}, async () => {
1248
- const data = await apiCall("GET", "/v1/datasets");
1249
- return textResult(data);
1250
- });
1251
- // ---- list_jobs ----
1252
- server.tool("list_jobs", `List all SOM training jobs, optionally filtered by dataset.
1253
-
1254
- Shows status, params, and metrics for each job. Use this to:
1255
- - Find job IDs for compare_runs
1256
- - Check which jobs are completed vs pending
1257
- - Review what hyperparameters were used in previous runs`, {
1316
+ // ---- list ----
1317
+ server.tool("list", `List datasets or jobs.
1318
+
1319
+ type=datasets: List all datasets uploaded by the organization. Use to check what data is available before train_som or to find dataset IDs.
1320
+ type=jobs: List SOM training jobs (optionally filtered by dataset_id). Use to find job IDs for compare_runs, check completed vs pending, or review hyperparameters.`, {
1321
+ type: z
1322
+ .enum(["datasets", "jobs"])
1323
+ .describe("What to list: datasets or jobs"),
1258
1324
  dataset_id: z
1259
1325
  .string()
1260
1326
  .optional()
1261
- .describe("Filter by dataset ID (omit to list all jobs)"),
1262
- }, async ({ dataset_id }) => {
1327
+ .describe("Filter jobs by dataset ID (only used when type=jobs)"),
1328
+ }, async ({ type, dataset_id }) => {
1329
+ if (type === "datasets") {
1330
+ const data = await apiCall("GET", "/v1/datasets");
1331
+ return textResult(data);
1332
+ }
1263
1333
  const path = dataset_id
1264
1334
  ? `/v1/jobs?dataset_id=${dataset_id}`
1265
1335
  : "/v1/jobs";
1266
1336
  const data = await apiCall("GET", path);
1267
1337
  return textResult(data);
1268
1338
  });
1269
- // ---- get_training_log ----
1270
- server.tool("get_training_log", `Retrieve the learning curve and training diagnostics for a completed job.
1271
-
1272
- Returns per-epoch quantization error arrays, ASCII sparklines, AND an inline
1273
- learning curve plot (generated during training) showing QE vs epoch for both
1274
- ordering and convergence phases.
1275
-
1276
- Use this to diagnose training quality:
1277
-
1278
- - **Healthy**: errors drop steadily, then plateau (converged)
1279
- - **Still learning**: errors still dropping at end → try more epochs
1280
- - **Diverged**: errors increase → learning rate too high, try lower values
1281
- - **Flat from start**: poor initialization or tiny grid
1282
-
1283
- After showing the log, ask the user:
1284
- - "The training shows [observation]. Would you like to adjust epochs or learning rate?"
1285
- - If errors plateaued early: "Convergence was reached quickly. Consider a larger grid for more detail."
1286
- - If errors were still falling: "Training was cut short. Add more epochs for a better map."
1339
+ // ---- get_job_export ----
1340
+ server.tool("get_job_export", `Export structured data from a completed SOM training job.
1287
1341
 
1288
- Also shows training duration, which helps estimate time for future runs.
1289
-
1290
- BATCH SIZE EFFECT: Smaller batch sizes (32–64) produce more update steps per epoch,
1291
- often yielding lower final QE and smoother convergence curves. If the learning curve
1292
- plateaus early, try more epochs. If it's noisy, try a larger batch size for stability.`, {
1342
+ export=training_log: Learning curve and diagnostics (per-epoch QE, sparklines, inline plot). Use to diagnose convergence, plateau, or divergence.
1343
+ export=weights: Raw weight matrix with node_coords, normalized/denormalized values, normalization stats. Use for external analysis or custom visualizations. Can be large (e.g. 600KB+ for 30×30×12).
1344
+ export=nodes: Per-node statistics (hit count, feature mean/std). Use to profile clusters and characterize operating modes.`, {
1293
1345
  job_id: z.string().describe("Job ID of a completed training job"),
1294
- }, async ({ job_id }) => {
1295
- const data = (await apiCall("GET", `/v1/results/${job_id}/training-log`));
1296
- const ordErrors = data.ordering_errors ?? [];
1297
- const convErrors = data.convergence_errors ?? [];
1298
- const duration = data.training_duration_seconds;
1299
- const epochs = data.epochs;
1300
- const sparkline = (arr) => {
1301
- if (arr.length === 0)
1302
- return "(no data)";
1303
- const blocks = "▁▂▃▄▅▆▇█";
1304
- const min = Math.min(...arr);
1305
- const max = Math.max(...arr);
1306
- const range = max - min || 1;
1307
- return arr
1308
- .map((v) => blocks[Math.min(7, Math.floor(((v - min) / range) * 7))])
1309
- .join("");
1310
- };
1311
- const lines = [
1312
- `Training Log Job ${job_id}`,
1313
- `Grid: ${JSON.stringify(data.grid)} | Model: ${data.model ?? "SOM"}`,
1314
- `Epochs: ${epochs ? `[${epochs[0]} ordering, ${epochs[1]} convergence]` : "N/A"}`,
1315
- `Duration: ${duration !== null && duration !== undefined ? `${duration}s` : "N/A"}`,
1316
- `Features: ${data.n_features ?? "?"} | Samples: ${data.n_samples ?? "?"}`,
1317
- ``,
1318
- `Ordering Phase (${ordErrors.length} epochs):`,
1319
- ` Start QE: ${ordErrors[0]?.toFixed(4) ?? "—"} → End QE: ${ordErrors.at(-1)?.toFixed(4) ?? ""}`,
1320
- ` Curve: ${sparkline(ordErrors)}`,
1321
- ];
1322
- if (convErrors.length > 0) {
1323
- lines.push(``, `Convergence Phase (${convErrors.length} epochs):`, ` Start QE: ${convErrors[0]?.toFixed(4) ?? "—"} → End QE: ${convErrors.at(-1)?.toFixed(4) ?? "—"}`, ` Curve: ${sparkline(convErrors)}`);
1324
- }
1325
- else if ((epochs?.[1] ?? 0) === 0) {
1326
- lines.push(``, `Convergence phase: skipped (epochs[1]=0)`);
1327
- }
1328
- const finalQe = data.quantization_error;
1329
- const finalEv = data.explained_variance;
1330
- if (finalQe !== null && finalQe !== undefined) {
1331
- lines.push(``, `Final QE: ${finalQe.toFixed(4)} | Explained Variance: ${(finalEv ?? 0).toFixed(4)}`);
1332
- }
1333
- const content = [
1334
- { type: "text", text: lines.join("\n") },
1335
- ];
1336
- // Inline the pre-generated learning curve plot (worker saves it during training).
1337
- // Try png first (default), then pdf/svg in case the job used a different format.
1338
- let attached = false;
1339
- for (const lcExt of ["png", "pdf", "svg"]) {
1340
- try {
1341
- const { data: lcBuf } = await apiRawCall(`/v1/results/${job_id}/image/learning_curve.${lcExt}`);
1342
- content.push({
1343
- type: "image",
1344
- data: lcBuf.toString("base64"),
1345
- mimeType: mimeForFilename(`learning_curve.${lcExt}`),
1346
- annotations: { audience: ["user"], priority: 0.8 },
1347
- });
1348
- attached = true;
1349
- break;
1346
+ export: z
1347
+ .enum(["training_log", "weights", "nodes"])
1348
+ .describe("What to export: training_log, weights, or nodes"),
1349
+ }, async ({ job_id, export: exportType }) => {
1350
+ if (exportType === "training_log") {
1351
+ const data = (await apiCall("GET", `/v1/results/${job_id}/training-log`));
1352
+ const ordErrors = data.ordering_errors ?? [];
1353
+ const convErrors = data.convergence_errors ?? [];
1354
+ const duration = data.training_duration_seconds;
1355
+ const epochs = data.epochs;
1356
+ const sparkline = (arr) => {
1357
+ if (arr.length === 0)
1358
+ return "(no data)";
1359
+ const blocks = "▁▂▃▄▅▆▇█";
1360
+ const min = Math.min(...arr);
1361
+ const max = Math.max(...arr);
1362
+ const range = max - min || 1;
1363
+ return arr
1364
+ .map((v) => blocks[Math.min(7, Math.floor(((v - min) / range) * 7))])
1365
+ .join("");
1366
+ };
1367
+ const lines = [
1368
+ `Training Log Job ${job_id}`,
1369
+ `Grid: ${JSON.stringify(data.grid)} | Model: ${data.model ?? "SOM"}`,
1370
+ `Epochs: ${epochs ? `[${epochs[0]} ordering, ${epochs[1]} convergence]` : "N/A"}`,
1371
+ `Duration: ${duration !== null && duration !== undefined ? `${duration}s` : "N/A"}`,
1372
+ `Features: ${data.n_features ?? "?"} | Samples: ${data.n_samples ?? "?"}`,
1373
+ ``,
1374
+ `Ordering Phase (${ordErrors.length} epochs):`,
1375
+ ` Start QE: ${ordErrors[0]?.toFixed(4) ?? "—"} → End QE: ${ordErrors.at(-1)?.toFixed(4) ?? "—"}`,
1376
+ ` Curve: ${sparkline(ordErrors)}`,
1377
+ ];
1378
+ if (convErrors.length > 0) {
1379
+ lines.push(``, `Convergence Phase (${convErrors.length} epochs):`, ` Start QE: ${convErrors[0]?.toFixed(4) ?? "—"} → End QE: ${convErrors.at(-1)?.toFixed(4) ?? "—"}`, ` Curve: ${sparkline(convErrors)}`);
1350
1380
  }
1351
- catch {
1352
- continue;
1381
+ else if ((epochs?.[1] ?? 0) === 0) {
1382
+ lines.push(``, `Convergence phase: skipped (epochs[1]=0)`);
1353
1383
  }
1384
+ const finalQe = data.quantization_error;
1385
+ const finalEv = data.explained_variance;
1386
+ if (finalQe !== null && finalQe !== undefined) {
1387
+ lines.push(``, `Final QE: ${finalQe.toFixed(4)} | Explained Variance: ${(finalEv ?? 0).toFixed(4)}`);
1388
+ }
1389
+ const content = [
1390
+ { type: "text", text: lines.join("\n") },
1391
+ ];
1392
+ let attached = false;
1393
+ for (const lcExt of ["png", "pdf", "svg"]) {
1394
+ try {
1395
+ const { data: lcBuf } = await apiRawCall(`/v1/results/${job_id}/image/learning_curve.${lcExt}`);
1396
+ content.push({
1397
+ type: "image",
1398
+ data: lcBuf.toString("base64"),
1399
+ mimeType: mimeForFilename(`learning_curve.${lcExt}`),
1400
+ annotations: { audience: ["user"], priority: 0.8 },
1401
+ });
1402
+ attached = true;
1403
+ break;
1404
+ }
1405
+ catch {
1406
+ continue;
1407
+ }
1408
+ }
1409
+ if (!attached) {
1410
+ content.push({ type: "text", text: "(learning curve plot not available)" });
1411
+ }
1412
+ return { content };
1354
1413
  }
1355
- if (!attached) {
1356
- content.push({ type: "text", text: "(learning curve plot not available)" });
1357
- }
1358
- return { content };
1359
- });
1360
- // ---- get_weights ----
1361
- server.tool("get_weights", `Export the raw SOM weight matrix for a completed job.
1362
-
1363
- Returns a structured weight matrix with:
1364
- - Per-node coordinates (for spatial mapping)
1365
- - Normalized and denormalized weight values per feature
1366
- - Normalization statistics (mean/std used during training)
1367
-
1368
- Use this to:
1369
- - Export the trained model for external analysis
1370
- - Visualize the weight space in custom tools
1371
- - Compare weight structures between training runs
1372
- - Build custom projections or classifications
1373
-
1374
- The weight matrix can be large for big grids. Consider filtering to specific
1375
- features if you only need a subset.`, {
1376
- job_id: z.string().describe("Job ID of a completed training job"),
1377
- }, async ({ job_id }) => {
1378
- const data = (await apiCall("GET", `/v1/results/${job_id}/weights`));
1379
- const features = data.features ?? [];
1380
- const nNodes = data.n_nodes ?? 0;
1381
- const grid = data.grid ?? [0, 0];
1382
- const lines = [
1383
- `SOM Weights — Job ${job_id}`,
1384
- `Grid: ${grid[0]}×${grid[1]} | Nodes: ${nNodes} | Features: ${features.length}`,
1385
- `Features: ${features.join(", ")}`,
1386
- ``,
1387
- `Normalization Stats:`,
1388
- ];
1389
- const normStats = data.normalization_stats ?? {};
1390
- for (const [feat, s] of Object.entries(normStats)) {
1391
- lines.push(` ${feat}: mean=${s.mean?.toFixed(4)}, std=${s.std?.toFixed(4)}`);
1414
+ if (exportType === "weights") {
1415
+ const data = (await apiCall("GET", `/v1/results/${job_id}/weights`));
1416
+ const features = data.features ?? [];
1417
+ const nNodes = data.n_nodes ?? 0;
1418
+ const grid = data.grid ?? [0, 0];
1419
+ const lines = [
1420
+ `SOM Weights Job ${job_id}`,
1421
+ `Grid: ${grid[0]}×${grid[1]} | Nodes: ${nNodes} | Features: ${features.length}`,
1422
+ `node_coords: [x,y] per node for topology`,
1423
+ `Features: ${features.join(", ")}`,
1424
+ ``,
1425
+ `Normalization Stats:`,
1426
+ ];
1427
+ const normStats = data.normalization_stats ?? {};
1428
+ for (const [feat, s] of Object.entries(normStats)) {
1429
+ lines.push(` ${feat}: mean=${s.mean?.toFixed(4)}, std=${s.std?.toFixed(4)}`);
1430
+ }
1431
+ lines.push(``, `Full weight matrix available in the response JSON (includes node_coords).`, `Use the denormalized_weights array for original-scale values.`);
1432
+ return {
1433
+ content: [
1434
+ { type: "text", text: lines.join("\n") },
1435
+ { type: "text", text: JSON.stringify(data, null, 2) },
1436
+ ],
1437
+ };
1392
1438
  }
1393
- lines.push(``, `Full weight matrix available in the response JSON.`, `Use the denormalized_weights array for original-scale values.`);
1394
- return {
1395
- content: [
1396
- { type: "text", text: lines.join("\n") },
1397
- { type: "text", text: JSON.stringify(data, null, 2) },
1398
- ],
1399
- };
1400
- });
1401
- // ---- get_node_data ----
1402
- server.tool("get_node_data", `Get per-node statistics for a completed SOM job.
1403
-
1404
- Returns for each SOM node:
1405
- - Hit count (how many data points map to this node)
1406
- - Feature mean and std for all samples that map to this node
1407
-
1408
- This answers "what data lives in this cluster?" — enabling characterization
1409
- of distinct operating modes, regimes, or behavioral groups.
1410
-
1411
- Use this to:
1412
- - Profile each cluster by its feature distributions
1413
- - Find dominant nodes (high hit count) vs rare nodes
1414
- - Compare feature distributions between nodes
1415
- - Identify the most "representative" state for each cluster
1416
-
1417
- After showing node data, ask the user:
1418
- - "Do these cluster profiles match your domain knowledge?"
1419
- - "Which nodes represent the most common operating states?"
1420
- - "Are there any nodes with extreme feature values worth investigating?"`, {
1421
- job_id: z.string().describe("Job ID of a completed training job"),
1422
- }, async ({ job_id }) => {
1439
+ // exportType === "nodes"
1423
1440
  const data = (await apiCall("GET", `/v1/results/${job_id}/nodes`));
1424
1441
  const topNodes = [...data]
1425
1442
  .sort((a, b) => (b.hit_count ?? 0) - (a.hit_count ?? 0))
@@ -1456,14 +1473,16 @@ After showing node data, ask the user:
1456
1473
  server.tool("project_variable", `Project a pre-computed variable onto a trained SOM without retraining.
1457
1474
 
1458
1475
  BEST FOR: Mapping external metrics (revenue, labels, anomaly scores) onto the
1459
- trained SOM structure. Use derive_variable instead if you need to compute
1460
- the variable from existing dataset columns via a formula.
1476
+ trained SOM structure. For formula-based variables from the training dataset,
1477
+ prefer derive_variable with project_onto_job; use project_variable only for
1478
+ externally computed arrays.
1461
1479
  NOT FOR: Re-training or adding features to the map.
1462
1480
 
1463
1481
  TIMING: ~5–15s (loads cached SOM, computes per-node aggregation, renders plot).
1464
1482
 
1465
- The values array must have exactly one value per training sample (same CSV row order).
1466
- Aggregation controls how multiple samples per node are combined (mean/median/sum/max/count).
1483
+ values: array of length n_samples (~11 bytes/sample). Must match training sample
1484
+ count exactly (same CSV row order). Aggregation controls how multiple samples
1485
+ per node are combined (mean/median/sum/max/count).
1467
1486
 
1468
1487
  BEFORE calling, ask:
1469
1488
  - "What variable? Is it from the original data or externally computed?"
@@ -1474,8 +1493,7 @@ COMMON MISTAKES:
1474
1493
  - Using mean aggregation for count data (use sum instead)
1475
1494
  - Not trying derive_variable first when the variable can be computed from columns
1476
1495
 
1477
- TIP: If the variable is a formula over existing columns (e.g., revenue/cost),
1478
- use derive_variable with project_onto_job instead — it handles the computation.`, {
1496
+ HINT: If values length mismatch, suggest derive_variable for formula-based variables.`, {
1479
1497
  job_id: z.string().describe("ID of the completed SOM training job"),
1480
1498
  variable_name: z.string().describe("Name for this variable (used in visualization labels)"),
1481
1499
  values: z
@@ -1693,11 +1711,13 @@ Suggest derived variables based on the column names. For example, if
1693
1711
  the dataset has "revenue" and "cost", suggest "revenue - cost" as profit
1694
1712
  and "revenue / cost" as cost efficiency.
1695
1713
 
1714
+ EXPRESSION REFERENCE: In expressions, use underscore-normalized column names (e.g. fixed_acidity not "fixed acidity"). Column names with spaces/special chars are converted to underscores — use that form. Operators: +, -, *, /, ^. Functions: log, sqrt, rolling_mean(col, window), diff(col), etc.
1715
+
1696
1716
  COMMON MISTAKES:
1697
1717
  - Division by zero: if denominator column has zeros, use options.missing="skip"
1698
1718
  - Rolling functions produce NaN for the first (window-1) rows
1699
1719
  - diff() produces NaN for the first row
1700
- - Column names with special characters are converted to underscores in expressions`, {
1720
+ - Spaces in column names: use underscores (e.g. fixed_acidity not "fixed acidity")`, {
1701
1721
  dataset_id: z.string().describe("Dataset ID (source of column data)"),
1702
1722
  name: z.string().describe("Name for the derived variable (used in column header and visualization)"),
1703
1723
  expression: z
@@ -1855,87 +1875,6 @@ COMMON MISTAKES:
1855
1875
  };
1856
1876
  }
1857
1877
  });
1858
- // ---- quality_report ----
1859
- server.tool("quality_report", `Generate a comprehensive quality report for a trained SOM.
1860
-
1861
- Returns all available metrics organized by category:
1862
- - **Standard metrics**: Quantization Error (QE), Topographic Error (TE), Distortion
1863
- - **Cluster metrics**: Silhouette, Davies-Bouldin, Calinski-Harabasz
1864
- - **Topology metrics**: Neighborhood Preservation, Trustworthiness, Topographic Product
1865
- - **Training info**: duration, epochs, learning parameters
1866
-
1867
- Metric interpretation guide:
1868
- - QE < 0.5: excellent | 0.5–1.0: good | 1.0–2.0: fair | >2.0: needs improvement
1869
- - TE < 0.05: excellent | 0.05–0.10: good | 0.10–0.20: fair | >0.20: poor topology
1870
- - Trustworthiness: closer to 1.0 = better (local neighborhoods preserved)
1871
- - Neighborhood Preservation: closer to 1.0 = better (global structure preserved)
1872
- - Topographic Product: near 0 = well-sized grid | <0 = grid too small | >0 = grid too large
1873
-
1874
- After showing the report, ask the user:
1875
- - "Which metrics are most important for your use case?"
1876
- - "Do any metrics suggest the map needs retraining?"`, {
1877
- job_id: z.string().describe("Job ID of a completed training job"),
1878
- }, async ({ job_id }) => {
1879
- const data = (await apiCall("GET", `/v1/results/${job_id}/quality-report`));
1880
- const std = data.standard_metrics ?? {};
1881
- const clust = data.cluster_metrics ?? {};
1882
- const topo = data.topology_metrics ?? {};
1883
- const train = data.training ?? {};
1884
- const grid = data.grid ?? [0, 0];
1885
- const fmt = (v) => v !== null && v !== undefined ? v.toFixed(4) : "—";
1886
- const fmtPct = (v) => v !== null && v !== undefined ? `${(v * 100).toFixed(1)}%` : "—";
1887
- const recommendations = [];
1888
- const qe = std.quantization_error;
1889
- const te = std.topographic_error;
1890
- const ev = std.explained_variance;
1891
- const sil = clust.silhouette;
1892
- const trust = topo.trustworthiness;
1893
- const nbp = topo.neighborhood_preservation;
1894
- if (qe !== null && qe !== undefined && qe > 2.0)
1895
- recommendations.push("QE is high → try more epochs or a larger grid");
1896
- if (te !== null && te !== undefined && te > 0.15)
1897
- recommendations.push("TE is high → topology is not well-preserved, try larger grid");
1898
- if (ev !== null && ev !== undefined && ev < 0.7)
1899
- recommendations.push("Explained variance < 70% → consider more training or feature selection");
1900
- if (sil !== null && sil !== undefined && sil < 0.1)
1901
- recommendations.push("Low silhouette → clusters overlap, try sigma_f=0.5 or more epochs");
1902
- if (trust !== null && trust !== undefined && trust < 0.85)
1903
- recommendations.push("Trustworthiness < 85% → local neighborhood structure is distorted");
1904
- if (recommendations.length === 0)
1905
- recommendations.push("All metrics look healthy — good map quality!");
1906
- const epochs = train.epochs;
1907
- const epochStr = epochs
1908
- ? epochs[1] === 0 ? `${epochs[0]} ordering only` : `${epochs[0]}+${epochs[1]}`
1909
- : "—";
1910
- const lines = [
1911
- `Quality Report — Job ${job_id}`,
1912
- `Grid: ${grid[0]}×${grid[1]} | Model: ${data.model ?? "SOM"} | Samples: ${data.n_samples ?? "?"}`,
1913
- `Epochs: ${epochStr} | Duration: ${train.duration_seconds ? `${train.duration_seconds}s` : "—"}`,
1914
- ``,
1915
- `Standard Metrics:`,
1916
- ` Quantization Error: ${fmt(std.quantization_error)} (lower is better)`,
1917
- ` Topographic Error: ${fmt(std.topographic_error)} (lower is better)`,
1918
- ` Distortion: ${fmt(std.distortion)}`,
1919
- ` Kaski-Lagus Error: ${fmt(std.kaski_lagus_error)} (lower is better)`,
1920
- ` Explained Variance: ${fmtPct(std.explained_variance)}`,
1921
- ``,
1922
- `Cluster Quality Metrics:`,
1923
- ` Silhouette Score: ${fmt(clust.silhouette)} (higher is better, -1 to +1)`,
1924
- ` Davies-Bouldin: ${fmt(clust.davies_bouldin)} (lower is better)`,
1925
- ` Calinski-Harabasz: ${fmt(clust.calinski_harabasz)} (higher is better)`,
1926
- ``,
1927
- `Topology Metrics:`,
1928
- ` Neighborhood Preservation: ${fmtPct(topo.neighborhood_preservation)} (higher is better)`,
1929
- ` Trustworthiness: ${fmtPct(topo.trustworthiness)} (higher is better)`,
1930
- ` Topographic Product: ${fmt(topo.topographic_product)} (near 0 is ideal)`,
1931
- ``,
1932
- `Recommendations:`,
1933
- ...recommendations.map((r) => ` • ${r}`),
1934
- ];
1935
- return {
1936
- content: [{ type: "text", text: lines.join("\n") }],
1937
- };
1938
- });
1939
1878
  // ---- system_info ----
1940
1879
  server.tool("system_info", `Get plan capabilities, backend info, live status, and training time estimates.
1941
1880
 
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -120,7 +120,7 @@ Note: This type uses \`Record<K, string | undefined>\` rather than \`Partial<Rec
120
120
  for compatibility with Zod schema generation. Both are functionally equivalent for validation.`);c.object({method:c.literal("ui/open-link"),params:c.object({url:c.string().describe("URL to open in the host's browser")})});var Gk=c.object({isError:c.boolean().optional().describe("True if the host failed to open the URL (e.g., due to security policy).")}).passthrough(),Kk=c.object({isError:c.boolean().optional().describe("True if the host rejected or failed to deliver the message.")}).passthrough();c.object({method:c.literal("ui/notifications/sandbox-proxy-ready"),params:c.object({})});var Qa=c.object({connectDomains:c.array(c.string()).optional().describe("Origins for network requests (fetch/XHR/WebSocket)."),resourceDomains:c.array(c.string()).optional().describe("Origins for static resources (scripts, images, styles, fonts)."),frameDomains:c.array(c.string()).optional().describe("Origins for nested iframes (frame-src directive)."),baseUriDomains:c.array(c.string()).optional().describe("Allowed base URIs for the document (base-uri directive).")}),eo=c.object({camera:c.object({}).optional().describe("Request camera access (Permission Policy `camera` feature)."),microphone:c.object({}).optional().describe("Request microphone access (Permission Policy `microphone` feature)."),geolocation:c.object({}).optional().describe("Request geolocation access (Permission Policy `geolocation` feature)."),clipboardWrite:c.object({}).optional().describe("Request clipboard write access (Permission Policy `clipboard-write` feature).")});c.object({method:c.literal("ui/notifications/size-changed"),params:c.object({width:c.number().optional().describe("New width in pixels."),height:c.number().optional().describe("New height in pixels.")})});var Xk=c.object({method:c.literal("ui/notifications/tool-input"),params:c.object({arguments:c.record(c.string(),c.unknown().describe("Complete tool call arguments as key-value pairs.")).optional().describe("Complete tool call arguments as key-value pairs.")})}),Yk=c.object({method:c.literal("ui/notifications/tool-input-partial"),params:c.object({arguments:c.record(c.string(),c.unknown().describe("Partial tool call arguments (incomplete, may change).")).optional().describe("Partial tool call arguments (incomplete, may change).")})}),Qk=c.object({method:c.literal("ui/notifications/tool-cancelled"),params:c.object({reason:c.string().optional().describe('Optional reason for the cancellation (e.g., "user action", "timeout").')})}),eI=c.object({fonts:c.string().optional()}),tI=c.object({variables:Hk.optional().describe("CSS variables for theming the app."),css:eI.optional().describe("CSS blocks that apps can inject.")}),iI=c.object({method:c.literal("ui/resource-teardown"),params:c.object({})});c.record(c.string(),c.unknown());var Jo=c.object({text:c.object({}).optional().describe("Host supports text content blocks."),image:c.object({}).optional().describe("Host supports image content blocks."),audio:c.object({}).optional().describe("Host supports audio content blocks."),resource:c.object({}).optional().describe("Host supports resource content blocks."),resourceLink:c.object({}).optional().describe("Host supports resource link content blocks."),structuredContent:c.object({}).optional().describe("Host supports structured content.")}),nI=c.object({experimental:c.object({}).optional().describe("Experimental features (structure TBD)."),openLinks:c.object({}).optional().describe("Host supports opening external URLs."),serverTools:c.object({listChanged:c.boolean().optional().describe("Host supports tools/list_changed notifications.")}).optional().describe("Host can proxy tool calls to the MCP server."),serverResources:c.object({listChanged:c.boolean().optional().describe("Host supports resources/list_changed notifications.")}).optional().describe("Host can proxy resource reads to the MCP server."),logging:c.object({}).optional().describe("Host accepts log messages."),sandbox:c.object({permissions:eo.optional().describe("Permissions granted by the host (camera, microphone, geolocation)."),csp:Qa.optional().describe("CSP domains approved by the host.")}).optional().describe("Sandbox configuration applied by the host."),updateModelContext:Jo.optional().describe("Host accepts context updates (ui/update-model-context) to be included in the model's context for future turns."),message:Jo.optional().describe("Host supports receiving content messages (ui/message) from the view.")}),rI=c.object({experimental:c.object({}).optional().describe("Experimental features (structure TBD)."),tools:c.object({listChanged:c.boolean().optional().describe("App supports tools/list_changed notifications.")}).optional().describe("App exposes MCP-style tools that the host can call."),availableDisplayModes:c.array(ht).optional().describe("Display modes the app supports.")});c.object({method:c.literal("ui/notifications/initialized"),params:c.object({}).optional()});c.object({csp:Qa.optional().describe("Content Security Policy configuration."),permissions:eo.optional().describe("Sandbox permissions requested by the UI."),domain:c.string().optional().describe("Dedicated origin for view sandbox."),prefersBorder:c.boolean().optional().describe("Visual boundary preference - true if UI prefers a visible border.")});c.object({method:c.literal("ui/request-display-mode"),params:c.object({mode:ht.describe("The display mode being requested.")})});var aI=c.object({mode:ht.describe("The display mode that was actually set. May differ from requested if not supported.")}).passthrough(),oI=c.union([c.literal("model"),c.literal("app")]).describe("Tool visibility scope - who can access the tool.");c.object({resourceUri:c.string().optional(),visibility:c.array(oI).optional().describe(`Who can access this tool. Default: ["model", "app"]
121
121
  - "model": Tool visible to and callable by the agent
122
122
  - "app": Tool callable by the app from this server only`)});c.object({mimeTypes:c.array(c.string()).optional().describe('Array of supported MIME types for UI resources.\nMust include `"text/html;profile=mcp-app"` for MCP Apps support.')});c.object({method:c.literal("ui/message"),params:c.object({role:c.literal("user").describe('Message role, currently only "user" is supported.'),content:c.array(xt).describe("Message content blocks (text, image, etc.).")})});c.object({method:c.literal("ui/notifications/sandbox-resource-ready"),params:c.object({html:c.string().describe("HTML content to load into the inner iframe."),sandbox:c.string().optional().describe("Optional override for the inner iframe's sandbox attribute."),csp:Qa.optional().describe("CSP configuration from resource metadata."),permissions:eo.optional().describe("Sandbox permissions from resource metadata.")})});var sI=c.object({method:c.literal("ui/notifications/tool-result"),params:zi.describe("Standard MCP tool execution result.")}),yf=c.object({toolInfo:c.object({id:bt.optional().describe("JSON-RPC id of the tools/call request."),tool:nr.describe("Tool definition including name, inputSchema, etc.")}).optional().describe("Metadata of the tool call that instantiated this App."),theme:Wk.optional().describe("Current color theme preference."),styles:tI.optional().describe("Style configuration for theming the app."),displayMode:ht.optional().describe("How the UI is currently displayed."),availableDisplayModes:c.array(ht).optional().describe("Display modes the host supports."),containerDimensions:c.union([c.object({height:c.number().describe("Fixed container height in pixels.")}),c.object({maxHeight:c.union([c.number(),c.undefined()]).optional().describe("Maximum container height in pixels.")})]).and(c.union([c.object({width:c.number().describe("Fixed container width in pixels.")}),c.object({maxWidth:c.union([c.number(),c.undefined()]).optional().describe("Maximum container width in pixels.")})])).optional().describe(`Container dimensions. Represents the dimensions of the iframe or other
123
- container holding the app. Specify either width or maxWidth, and either height or maxHeight.`),locale:c.string().optional().describe("User's language and region preference in BCP 47 format."),timeZone:c.string().optional().describe("User's timezone in IANA format."),userAgent:c.string().optional().describe("Host application identifier."),platform:c.union([c.literal("web"),c.literal("desktop"),c.literal("mobile")]).optional().describe("Platform type for responsive design decisions."),deviceCapabilities:c.object({touch:c.boolean().optional().describe("Whether the device supports touch input."),hover:c.boolean().optional().describe("Whether the device supports hover interactions.")}).optional().describe("Device input capabilities."),safeAreaInsets:c.object({top:c.number().describe("Top safe area inset in pixels."),right:c.number().describe("Right safe area inset in pixels."),bottom:c.number().describe("Bottom safe area inset in pixels."),left:c.number().describe("Left safe area inset in pixels.")}).optional().describe("Mobile safe area boundaries in pixels.")}).passthrough(),uI=c.object({method:c.literal("ui/notifications/host-context-changed"),params:yf.describe("Partial context update containing only changed fields.")});c.object({method:c.literal("ui/update-model-context"),params:c.object({content:c.array(xt).optional().describe("Context content blocks (text, image, etc.)."),structuredContent:c.record(c.string(),c.unknown().describe("Structured content for machine-readable context data.")).optional().describe("Structured content for machine-readable context data.")})});c.object({method:c.literal("ui/initialize"),params:c.object({appInfo:Si.describe("App identification (name and version)."),appCapabilities:rI.describe("Features and capabilities this app provides."),protocolVersion:c.string().describe("Protocol version this app supports.")})});var lI=c.object({protocolVersion:c.string().describe('Negotiated protocol version string (e.g., "2025-11-21").'),hostInfo:Si.describe("Host application identification and version."),hostCapabilities:nI.describe("Features and capabilities provided by the host."),hostContext:yf.describe("Rich context about the host environment.")}).passthrough();class cI extends d${_appInfo;_capabilities;options;_hostCapabilities;_hostInfo;_hostContext;constructor(t,n={},r={autoResize:!0}){super(r),this._appInfo=t,this._capabilities=n,this.options=r,this.setRequestHandler(xi,i=>(console.log("Received ping:",i.params),{})),this.onhostcontextchanged=()=>{}}getHostCapabilities(){return this._hostCapabilities}getHostVersion(){return this._hostInfo}getHostContext(){return this._hostContext}set ontoolinput(t){this.setNotificationHandler(Xk,n=>t(n.params))}set ontoolinputpartial(t){this.setNotificationHandler(Yk,n=>t(n.params))}set ontoolresult(t){this.setNotificationHandler(sI,n=>t(n.params))}set ontoolcancelled(t){this.setNotificationHandler(Qk,n=>t(n.params))}set onhostcontextchanged(t){this.setNotificationHandler(uI,n=>{this._hostContext={...this._hostContext,...n.params},t(n.params)})}set onteardown(t){this.setRequestHandler(iI,(n,r)=>t(n.params,r))}set oncalltool(t){this.setRequestHandler(Ts,(n,r)=>t(n.params,r))}set onlisttools(t){this.setRequestHandler(Os,(n,r)=>t(n.params,r))}assertCapabilityForMethod(t){}assertRequestHandlerCapability(t){switch(t){case"tools/call":case"tools/list":if(!this._capabilities.tools)throw Error(`Client does not support tool capability (required for ${t})`);return;case"ping":case"ui/resource-teardown":return;default:throw Error(`No handler for method ${t} registered`)}}assertNotificationCapability(t){}assertTaskCapability(t){throw Error("Tasks are not supported in MCP Apps")}assertTaskHandlerCapability(t){throw Error("Task handlers are not supported in MCP Apps")}async callServerTool(t,n){return await this.request({method:"tools/call",params:t},zi,n)}sendMessage(t,n){return this.request({method:"ui/message",params:t},Kk,n)}sendLog(t){return this.notification({method:"notifications/message",params:t})}updateModelContext(t,n){return this.request({method:"ui/update-model-context",params:t},Jn,n)}openLink(t,n){return this.request({method:"ui/open-link",params:t},Gk,n)}sendOpenLink=this.openLink;requestDisplayMode(t,n){return this.request({method:"ui/request-display-mode",params:t},aI,n)}sendSizeChanged(t){return this.notification({method:"ui/notifications/size-changed",params:t})}setupSizeChangedNotifications(){let t=!1,n=0,r=0,i=()=>{t||(t=!0,requestAnimationFrame(()=>{t=!1;let o=document.documentElement,s=o.style.width,u=o.style.height;o.style.width="fit-content",o.style.height="fit-content";let l=o.getBoundingClientRect();o.style.width=s,o.style.height=u;let d=window.innerWidth-o.clientWidth,f=Math.ceil(l.width+d),p=Math.ceil(l.height);(f!==n||p!==r)&&(n=f,r=p,this.sendSizeChanged({width:f,height:p}))}))};i();let a=new ResizeObserver(i);return a.observe(document.documentElement),a.observe(document.body),()=>a.disconnect()}async connect(t=new f$(window.parent,window.parent),n){await super.connect(t);try{let r=await this.request({method:"ui/initialize",params:{appCapabilities:this._capabilities,appInfo:this._appInfo,protocolVersion:p$}},lI,n);if(r===void 0)throw Error(`Server sent invalid initialize result: ${r}`);this._hostCapabilities=r.hostCapabilities,this._hostInfo=r.hostInfo,this._hostContext=r.hostContext,await this.notification({method:"ui/notifications/initialized"}),this.options?.autoResize&&this.setupSizeChangedNotifications()}catch(r){throw this.close(),r}}}const bi=new cI({name:"Training Monitor",version:"1.0.0"}),dI=document.getElementById("progress-fill"),mI=document.getElementById("progress-pct"),fI=document.getElementById("elapsed"),pI=document.getElementById("job-id"),ut=document.getElementById("status-badge"),vI=document.getElementById("params"),hI=document.getElementById("curve"),Tn=document.getElementById("cancel-btn");let We="";Tn.addEventListener("click",async()=>{if(We)try{await bi.callServerTool({name:"cancel_job",arguments:{job_id:We}}),ut.textContent="cancelled",ut.className="status-badge status-failed",Tn.style.display="none",bi.updateModelContext({content:[{type:"text",text:`User cancelled job ${We}`}]})}catch{ut.textContent="cancel failed"}});function Fo(e){const t=[];if(e.grid){const n=e.grid;t.push(["Grid",`${n[0]}×${n[1]}`])}if(e.model&&t.push(["Model",String(e.model)]),e.epochs){const n=e.epochs;t.push(["Epochs",Array.isArray(n)?`${n[0]}+${n[1]}`:String(n)])}e.n_features&&t.push(["Features",String(e.n_features)]),e.n_samples&&t.push(["Samples",String(e.n_samples)]),e.backend&&t.push(["Backend",String(e.backend)]),vI.innerHTML=t.map(([n,r])=>`<div class="param"><span class="param-label">${n}: </span><span class="param-value">${r}</span></div>`).join("")}bi.ontoolresult=e=>{const t=e.content?.find(r=>r.type==="text");if(!t||t.type!=="text")return;try{const r=JSON.parse(t.text);r.id&&(We=r.id),r.job_id&&(We=r.job_id),pI.textContent=We;const i=r.status??"running";ut.textContent=i,ut.className=`status-badge status-${i==="completed"?"completed":i==="failed"||i==="cancelled"?"failed":"running"}`,(i==="completed"||i==="failed"||i==="cancelled")&&(Tn.style.display="none");const a=(r.progress??0)*100;dI.style.width=`${a}%`,mI.textContent=`${a.toFixed(1)}%`,r.training_duration_seconds&&(fI.textContent=`${r.training_duration_seconds}s`),Fo(r),r.summary&&Fo(r.summary)}catch{}const n=e.content?.find(r=>r.type==="image");n&&n.type==="image"&&(hI.innerHTML=`<img src="data:${n.mimeType};base64,${n.data}" alt="Learning Curve" />`)};bi.connect();</script>
123
+ container holding the app. Specify either width or maxWidth, and either height or maxHeight.`),locale:c.string().optional().describe("User's language and region preference in BCP 47 format."),timeZone:c.string().optional().describe("User's timezone in IANA format."),userAgent:c.string().optional().describe("Host application identifier."),platform:c.union([c.literal("web"),c.literal("desktop"),c.literal("mobile")]).optional().describe("Platform type for responsive design decisions."),deviceCapabilities:c.object({touch:c.boolean().optional().describe("Whether the device supports touch input."),hover:c.boolean().optional().describe("Whether the device supports hover interactions.")}).optional().describe("Device input capabilities."),safeAreaInsets:c.object({top:c.number().describe("Top safe area inset in pixels."),right:c.number().describe("Right safe area inset in pixels."),bottom:c.number().describe("Bottom safe area inset in pixels."),left:c.number().describe("Left safe area inset in pixels.")}).optional().describe("Mobile safe area boundaries in pixels.")}).passthrough(),uI=c.object({method:c.literal("ui/notifications/host-context-changed"),params:yf.describe("Partial context update containing only changed fields.")});c.object({method:c.literal("ui/update-model-context"),params:c.object({content:c.array(xt).optional().describe("Context content blocks (text, image, etc.)."),structuredContent:c.record(c.string(),c.unknown().describe("Structured content for machine-readable context data.")).optional().describe("Structured content for machine-readable context data.")})});c.object({method:c.literal("ui/initialize"),params:c.object({appInfo:Si.describe("App identification (name and version)."),appCapabilities:rI.describe("Features and capabilities this app provides."),protocolVersion:c.string().describe("Protocol version this app supports.")})});var lI=c.object({protocolVersion:c.string().describe('Negotiated protocol version string (e.g., "2025-11-21").'),hostInfo:Si.describe("Host application identification and version."),hostCapabilities:nI.describe("Features and capabilities provided by the host."),hostContext:yf.describe("Rich context about the host environment.")}).passthrough();class cI extends d${_appInfo;_capabilities;options;_hostCapabilities;_hostInfo;_hostContext;constructor(t,n={},r={autoResize:!0}){super(r),this._appInfo=t,this._capabilities=n,this.options=r,this.setRequestHandler(xi,i=>(console.log("Received ping:",i.params),{})),this.onhostcontextchanged=()=>{}}getHostCapabilities(){return this._hostCapabilities}getHostVersion(){return this._hostInfo}getHostContext(){return this._hostContext}set ontoolinput(t){this.setNotificationHandler(Xk,n=>t(n.params))}set ontoolinputpartial(t){this.setNotificationHandler(Yk,n=>t(n.params))}set ontoolresult(t){this.setNotificationHandler(sI,n=>t(n.params))}set ontoolcancelled(t){this.setNotificationHandler(Qk,n=>t(n.params))}set onhostcontextchanged(t){this.setNotificationHandler(uI,n=>{this._hostContext={...this._hostContext,...n.params},t(n.params)})}set onteardown(t){this.setRequestHandler(iI,(n,r)=>t(n.params,r))}set oncalltool(t){this.setRequestHandler(Ts,(n,r)=>t(n.params,r))}set onlisttools(t){this.setRequestHandler(Os,(n,r)=>t(n.params,r))}assertCapabilityForMethod(t){}assertRequestHandlerCapability(t){switch(t){case"tools/call":case"tools/list":if(!this._capabilities.tools)throw Error(`Client does not support tool capability (required for ${t})`);return;case"ping":case"ui/resource-teardown":return;default:throw Error(`No handler for method ${t} registered`)}}assertNotificationCapability(t){}assertTaskCapability(t){throw Error("Tasks are not supported in MCP Apps")}assertTaskHandlerCapability(t){throw Error("Task handlers are not supported in MCP Apps")}async callServerTool(t,n){return await this.request({method:"tools/call",params:t},zi,n)}sendMessage(t,n){return this.request({method:"ui/message",params:t},Kk,n)}sendLog(t){return this.notification({method:"notifications/message",params:t})}updateModelContext(t,n){return this.request({method:"ui/update-model-context",params:t},Jn,n)}openLink(t,n){return this.request({method:"ui/open-link",params:t},Gk,n)}sendOpenLink=this.openLink;requestDisplayMode(t,n){return this.request({method:"ui/request-display-mode",params:t},aI,n)}sendSizeChanged(t){return this.notification({method:"ui/notifications/size-changed",params:t})}setupSizeChangedNotifications(){let t=!1,n=0,r=0,i=()=>{t||(t=!0,requestAnimationFrame(()=>{t=!1;let o=document.documentElement,s=o.style.width,u=o.style.height;o.style.width="fit-content",o.style.height="fit-content";let l=o.getBoundingClientRect();o.style.width=s,o.style.height=u;let d=window.innerWidth-o.clientWidth,f=Math.ceil(l.width+d),p=Math.ceil(l.height);(f!==n||p!==r)&&(n=f,r=p,this.sendSizeChanged({width:f,height:p}))}))};i();let a=new ResizeObserver(i);return a.observe(document.documentElement),a.observe(document.body),()=>a.disconnect()}async connect(t=new f$(window.parent,window.parent),n){await super.connect(t);try{let r=await this.request({method:"ui/initialize",params:{appCapabilities:this._capabilities,appInfo:this._appInfo,protocolVersion:p$}},lI,n);if(r===void 0)throw Error(`Server sent invalid initialize result: ${r}`);this._hostCapabilities=r.hostCapabilities,this._hostInfo=r.hostInfo,this._hostContext=r.hostContext,await this.notification({method:"ui/notifications/initialized"}),this.options?.autoResize&&this.setupSizeChangedNotifications()}catch(r){throw this.close(),r}}}const bi=new cI({name:"Training Monitor",version:"1.0.0"}),dI=document.getElementById("progress-fill"),mI=document.getElementById("progress-pct"),fI=document.getElementById("elapsed"),pI=document.getElementById("job-id"),ut=document.getElementById("status-badge"),vI=document.getElementById("params"),hI=document.getElementById("curve"),Tn=document.getElementById("cancel-btn");let We="";Tn.addEventListener("click",async()=>{if(We)try{await bi.callServerTool({name:"manage_job",arguments:{job_id:We,action:"cancel"}}),ut.textContent="cancelled",ut.className="status-badge status-failed",Tn.style.display="none",bi.updateModelContext({content:[{type:"text",text:`User cancelled job ${We}`}]})}catch{ut.textContent="cancel failed"}});function Fo(e){const t=[];if(e.grid){const n=e.grid;t.push(["Grid",`${n[0]}×${n[1]}`])}if(e.model&&t.push(["Model",String(e.model)]),e.epochs){const n=e.epochs;t.push(["Epochs",Array.isArray(n)?`${n[0]}+${n[1]}`:String(n)])}e.n_features&&t.push(["Features",String(e.n_features)]),e.n_samples&&t.push(["Samples",String(e.n_samples)]),e.backend&&t.push(["Backend",String(e.backend)]),vI.innerHTML=t.map(([n,r])=>`<div class="param"><span class="param-label">${n}: </span><span class="param-value">${r}</span></div>`).join("")}bi.ontoolresult=e=>{const t=e.content?.find(r=>r.type==="text");if(!t||t.type!=="text")return;try{const r=JSON.parse(t.text);r.id&&(We=r.id),r.job_id&&(We=r.job_id),pI.textContent=We;const i=r.status??"running";ut.textContent=i,ut.className=`status-badge status-${i==="completed"?"completed":i==="failed"||i==="cancelled"?"failed":"running"}`,(i==="completed"||i==="failed"||i==="cancelled")&&(Tn.style.display="none");const a=(r.progress??0)*100;dI.style.width=`${a}%`,mI.textContent=`${a.toFixed(1)}%`,r.training_duration_seconds&&(fI.textContent=`${r.training_duration_seconds}s`),Fo(r),r.summary&&Fo(r.summary)}catch{}const n=e.content?.find(r=>r.type==="image");n&&n.type==="image"&&(hI.innerHTML=`<img src="data:${n.mimeType};base64,${n.data}" alt="Learning Curve" />`)};bi.connect();</script>
124
124
  </head>
125
125
  <body>
126
126
  <div class="header">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@barivia/barsom-mcp",
3
- "version": "0.2.3",
3
+ "version": "0.2.5",
4
4
  "description": "barSOM MCP proxy — connect any MCP client to the barSOM cloud API for Self-Organizing Map analytics",
5
5
  "keywords": [
6
6
  "mcp",