@barivia/barsom-mcp 0.6.4 → 0.7.0
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 +7 -5
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/shared.d.ts +85 -0
- package/dist/shared.d.ts.map +1 -1
- package/dist/shared.js +49 -1
- package/dist/shared.js.map +1 -1
- package/dist/tools/account.d.ts.map +1 -1
- package/dist/tools/account.js +14 -3
- package/dist/tools/account.js.map +1 -1
- package/dist/tools/explore_map.d.ts +2 -1
- package/dist/tools/explore_map.d.ts.map +1 -1
- package/dist/tools/explore_map.js +121 -31
- package/dist/tools/explore_map.js.map +1 -1
- package/dist/tools/inference.d.ts.map +1 -1
- package/dist/tools/inference.js +5 -3
- package/dist/tools/inference.js.map +1 -1
- package/dist/tools/jobs.d.ts +68 -1
- package/dist/tools/jobs.d.ts.map +1 -1
- package/dist/tools/jobs.js +231 -81
- package/dist/tools/jobs.js.map +1 -1
- package/dist/tools/results.d.ts.map +1 -1
- package/dist/tools/results.js +47 -7
- package/dist/tools/results.js.map +1 -1
- package/dist/tools/training_prep.d.ts +4 -0
- package/dist/tools/training_prep.d.ts.map +1 -0
- package/dist/tools/training_prep.js +342 -0
- package/dist/tools/training_prep.js.map +1 -0
- package/dist/tools/training_review_store.d.ts +17 -0
- package/dist/tools/training_review_store.d.ts.map +1 -0
- package/dist/tools/training_review_store.js +54 -0
- package/dist/tools/training_review_store.js.map +1 -0
- package/dist/views/src/views/results-explorer/index.html +357 -0
- package/dist/views/src/views/training-prep/index.html +359 -0
- package/dist/viz-server.d.ts.map +1 -1
- package/dist/viz-server.js +51 -1
- package/dist/viz-server.js.map +1 -1
- package/package.json +2 -2
package/dist/tools/jobs.js
CHANGED
|
@@ -8,6 +8,8 @@ export const JOBS_DESCRIPTION_BASE = `Manage and inspect jobs.
|
|
|
8
8
|
| list | Finding job IDs, checking what is pending/completed, reviewing hyperparameters. Response includes job_type (train_map, enrich, report, recolor, project, transition_flow, compare, predict) to filter or display. |
|
|
9
9
|
| compare | Picking the best training run from a set of completed jobs |
|
|
10
10
|
| train_map | Submitting a new map training job — returns job_id for polling |
|
|
11
|
+
| train_siom_map | Submitting a self-interacting map training job — same map flow with SIOM coverage control |
|
|
12
|
+
| train_floop_chain | Submitting a FLooP-SIOM principal-curve training job |
|
|
11
13
|
| cancel | Stopping a running or pending job to free the worker |
|
|
12
14
|
| delete | Permanently removing a job and all its S3 result files |
|
|
13
15
|
|
|
@@ -27,18 +29,95 @@ ESCALATION (action=status):
|
|
|
27
29
|
- column missing: verify with datasets(action=preview)
|
|
28
30
|
- NaN error: user must clean the dataset
|
|
29
31
|
|
|
30
|
-
action=train_map: Submits a training job. Returns job_id — poll with jobs(action=status, job_id=...).
|
|
32
|
+
action=train_map / train_siom_map: Submits a grid-map training job. Returns job_id — poll with jobs(action=status, job_id=...).
|
|
31
33
|
Presets: quick | standard | refined | high_res — use preset=... for grid/epochs/batch defaults; call training_guidance for details.
|
|
32
34
|
Presets refined/high_res may use GPU. On CPU-only hosts pass backend=cpu. API expects strings "cpu" | "gpu" | "gpu_graphs" (no colon). Future backends (e.g. non-CUDA) may be added under the same contract.
|
|
33
35
|
normalize: "auto" (default) = scale only non-cyclic features; "all" = scale every feature. Use "auto" when using cyclic_features.
|
|
36
|
+
action=train_floop_chain: Submits a FLooP-SIOM job. Use when you want a growing chain/free-topology manifold instead of a fixed hex grid. Key params: topology=free|chain, max_nodes, effort, gamma, siom_decay.
|
|
34
37
|
action=compare: Returns a metrics table (QE, TE, explained variance, silhouette) for 2+ jobs.
|
|
35
38
|
action=cancel: Not instant — worker checks between phases. Expect up to 30s delay.
|
|
36
39
|
action=delete: WARNING — job ID will no longer work with results or any other tool.`;
|
|
40
|
+
export async function fetchTrainingPresets() {
|
|
41
|
+
const configData = (await apiCall("GET", "/v1/training/config"));
|
|
42
|
+
return configData?.presets || {};
|
|
43
|
+
}
|
|
44
|
+
export function buildTrainMapParams(args, presets) {
|
|
45
|
+
const { preset, grid_x, grid_y, epochs, model, periodic, columns, cyclic_features, temporal_features, feature_weights, transforms, auto_log_transforms, time_delay_embeddings, categorical_features, mca_features, hierarchical_features, normalize, sigma_f, learning_rate, batch_size, quality_metrics, backend, output_format, output_dpi, colormap, row_range, } = args;
|
|
46
|
+
const p = preset ? presets[preset] : undefined;
|
|
47
|
+
const params = {
|
|
48
|
+
model: model ?? "SOM",
|
|
49
|
+
periodic: periodic ?? true,
|
|
50
|
+
normalize: normalize ?? "auto",
|
|
51
|
+
};
|
|
52
|
+
if (grid_x !== undefined && grid_y !== undefined)
|
|
53
|
+
params.grid = [grid_x, grid_y];
|
|
54
|
+
else if (p)
|
|
55
|
+
params.grid = p.grid;
|
|
56
|
+
if (epochs !== undefined)
|
|
57
|
+
params.epochs = epochs;
|
|
58
|
+
else if (p)
|
|
59
|
+
params.epochs = p.epochs;
|
|
60
|
+
if (cyclic_features?.length)
|
|
61
|
+
params.cyclic_features = cyclic_features;
|
|
62
|
+
if (columns?.length)
|
|
63
|
+
params.columns = columns;
|
|
64
|
+
if (auto_log_transforms)
|
|
65
|
+
params.auto_log_transforms = auto_log_transforms;
|
|
66
|
+
if (time_delay_embeddings?.length)
|
|
67
|
+
params.time_delay_embeddings = time_delay_embeddings;
|
|
68
|
+
if (categorical_features?.length)
|
|
69
|
+
params.categorical_features = categorical_features;
|
|
70
|
+
if (mca_features?.length)
|
|
71
|
+
params.mca_features = mca_features;
|
|
72
|
+
if (hierarchical_features?.length)
|
|
73
|
+
params.hierarchical_features = hierarchical_features;
|
|
74
|
+
if (transforms && Object.keys(transforms).length > 0)
|
|
75
|
+
params.transforms = transforms;
|
|
76
|
+
if (temporal_features?.length)
|
|
77
|
+
params.temporal_features = temporal_features;
|
|
78
|
+
if (feature_weights && Object.keys(feature_weights).length > 0)
|
|
79
|
+
params.feature_weights = feature_weights;
|
|
80
|
+
if (sigma_f !== undefined)
|
|
81
|
+
params.sigma_f = sigma_f;
|
|
82
|
+
if (learning_rate !== undefined)
|
|
83
|
+
params.learning_rate = learning_rate;
|
|
84
|
+
if (batch_size !== undefined)
|
|
85
|
+
params.batch_size = batch_size;
|
|
86
|
+
else if (p)
|
|
87
|
+
params.batch_size = p.batch_size;
|
|
88
|
+
if (quality_metrics !== undefined)
|
|
89
|
+
params.quality_metrics = quality_metrics;
|
|
90
|
+
if (backend !== undefined && backend !== "auto")
|
|
91
|
+
params.backend = backend;
|
|
92
|
+
else if (p?.backend)
|
|
93
|
+
params.backend = p.backend;
|
|
94
|
+
params.output_format = output_format ?? "png";
|
|
95
|
+
const dpiMap = { standard: 1, retina: 2, print: 4 };
|
|
96
|
+
if (output_dpi && output_dpi !== "retina")
|
|
97
|
+
params.output_dpi = dpiMap[output_dpi] ?? 2;
|
|
98
|
+
if (colormap)
|
|
99
|
+
params.colormap = colormap;
|
|
100
|
+
if (row_range && row_range.length >= 2 && row_range[0] <= row_range[1])
|
|
101
|
+
params.row_range = row_range;
|
|
102
|
+
const effectiveGrid = params.grid;
|
|
103
|
+
const effectiveEpochs = params.epochs;
|
|
104
|
+
const effectiveBatch = params.batch_size;
|
|
105
|
+
const effectiveBackend = params.backend;
|
|
106
|
+
const paramSummary = [
|
|
107
|
+
effectiveGrid ? `grid=${effectiveGrid[0]}×${effectiveGrid[1]}` : "grid=auto",
|
|
108
|
+
effectiveEpochs ? `epochs=${Array.isArray(effectiveEpochs) ? effectiveEpochs.join("+") : effectiveEpochs}` : "epochs=auto",
|
|
109
|
+
effectiveBatch ? `batch=${effectiveBatch}` : "batch=auto",
|
|
110
|
+
`model=${params.model}`,
|
|
111
|
+
effectiveBackend ? `backend=${effectiveBackend}` : "",
|
|
112
|
+
preset ? `(from preset: ${preset})` : "",
|
|
113
|
+
].filter(Boolean).join(", ");
|
|
114
|
+
return { params, paramSummary, effectiveGrid };
|
|
115
|
+
}
|
|
37
116
|
export function registerJobsTool(server, description) {
|
|
38
117
|
server.tool("jobs", description, {
|
|
39
118
|
action: z
|
|
40
|
-
.enum(["status", "list", "compare", "cancel", "delete", "train_map", "batch_predict", "run_baseline_study"])
|
|
41
|
-
.describe("status: check progress; list: see all jobs; compare: metrics table; cancel: stop job; delete: remove job + files; train_map: submit
|
|
119
|
+
.enum(["status", "list", "compare", "cancel", "delete", "train_map", "train_siom_map", "train_floop_chain", "batch_predict", "run_baseline_study"])
|
|
120
|
+
.describe("status: check progress; list: see all jobs; compare: metrics table; cancel: stop job; delete: remove job + files; train_map: submit standard map training; train_siom_map: submit SIOM map training; train_floop_chain: submit FLooP-SIOM training; batch_predict: submit multiple predict jobs at once; run_baseline_study: auto-configure and train a baseline SOM"),
|
|
42
121
|
job_id: z
|
|
43
122
|
.string()
|
|
44
123
|
.optional()
|
|
@@ -123,14 +202,39 @@ export function registerJobsTool(server, description) {
|
|
|
123
202
|
output_dpi: z.enum(["standard", "retina", "print"]).optional().default("retina"),
|
|
124
203
|
colormap: z.string().optional(),
|
|
125
204
|
row_range: z.tuple([z.number().int().min(1), z.number().int().min(1)]).optional(),
|
|
205
|
+
gamma: z.preprocess((v) => (v !== undefined && v !== null && typeof v === "string") ? parseFloat(v) : v, z.number().optional()),
|
|
206
|
+
gamma_f: z.preprocess((v) => (v !== undefined && v !== null && typeof v === "string") ? parseFloat(v) : v, z.number().optional()),
|
|
207
|
+
siom_decay: z.preprocess((v) => (v !== undefined && v !== null && typeof v === "string") ? parseFloat(v) : v, z.number().optional()),
|
|
208
|
+
siom_penalty: z.enum(["linear", "log", "exp"]).optional(),
|
|
209
|
+
penalty_alpha: z.preprocess((v) => (v !== undefined && v !== null && typeof v === "string") ? parseFloat(v) : v, z.number().optional()),
|
|
210
|
+
reset_per_epoch: z.boolean().optional(),
|
|
211
|
+
topology: z.enum(["free", "chain"]).optional().default("free"),
|
|
212
|
+
max_nodes: z.number().int().min(2).optional(),
|
|
213
|
+
effort: z.enum(["quick", "standard", "thorough"]).optional().default("standard"),
|
|
214
|
+
n_initial: z.number().int().min(2).optional(),
|
|
215
|
+
n_passes: z.number().int().min(1).optional(),
|
|
216
|
+
growth_interval: z.number().int().min(1).optional(),
|
|
217
|
+
neighborhood_size: z.number().int().min(1).optional(),
|
|
218
|
+
edge_max_age: z.number().int().min(1).optional(),
|
|
219
|
+
max_degree: z.number().int().min(0).optional(),
|
|
220
|
+
error_threshold: z.preprocess((v) => (v !== undefined && v !== null && typeof v === "string") ? parseFloat(v) : v, z.number().optional()),
|
|
221
|
+
error_decay: z.preprocess((v) => (v !== undefined && v !== null && typeof v === "string") ? parseFloat(v) : v, z.number().optional()),
|
|
222
|
+
ring_close_threshold: z.preprocess((v) => (v !== undefined && v !== null && typeof v === "string") ? parseFloat(v) : v, z.number().optional()),
|
|
223
|
+
sigma_0: z.preprocess((v) => (v !== undefined && v !== null && typeof v === "string") ? parseFloat(v) : v, z.number().optional()),
|
|
224
|
+
eta_0: z.preprocess((v) => (v !== undefined && v !== null && typeof v === "string") ? parseFloat(v) : v, z.number().optional()),
|
|
225
|
+
eta_f: z.preprocess((v) => (v !== undefined && v !== null && typeof v === "string") ? parseFloat(v) : v, z.number().optional()),
|
|
226
|
+
elastic_lambda: z.preprocess((v) => (v !== undefined && v !== null && typeof v === "string") ? parseFloat(v) : v, z.number().optional()),
|
|
227
|
+
elastic_mu: z.preprocess((v) => (v !== undefined && v !== null && typeof v === "string") ? parseFloat(v) : v, z.number().optional()),
|
|
228
|
+
elastic_anchor: z.preprocess((v) => (v !== undefined && v !== null && typeof v === "string") ? parseFloat(v) : v, z.number().optional()),
|
|
229
|
+
anchor_percentile: z.preprocess((v) => (v !== undefined && v !== null && typeof v === "string") ? parseFloat(v) : v, z.number().optional()),
|
|
126
230
|
}, async (args) => {
|
|
127
231
|
const { action, job_id, job_ids, dataset_id } = args;
|
|
128
232
|
if (action === "run_baseline_study") {
|
|
129
233
|
if (!dataset_id)
|
|
130
234
|
throw new Error("jobs(run_baseline_study) requires dataset_id");
|
|
131
|
-
// Fetch dataset
|
|
132
|
-
const dsInfo = await apiCall("GET", `/v1/datasets/${dataset_id}`);
|
|
133
|
-
const nSamples = dsInfo.
|
|
235
|
+
// Fetch dataset preview to get row count
|
|
236
|
+
const dsInfo = await apiCall("GET", `/v1/datasets/${dataset_id}/preview?n_rows=1`);
|
|
237
|
+
const nSamples = dsInfo.total_rows || 1000;
|
|
134
238
|
// Heuristic grid size: 5 * sqrt(N)
|
|
135
239
|
const totalNodes = Math.round(5 * Math.sqrt(nSamples));
|
|
136
240
|
const side = Math.max(5, Math.round(Math.sqrt(totalNodes)));
|
|
@@ -141,21 +245,19 @@ export function registerJobsTool(server, description) {
|
|
|
141
245
|
grid: [side, side],
|
|
142
246
|
epochs: [10, 20],
|
|
143
247
|
batch_size: 32,
|
|
144
|
-
quality_metrics:
|
|
248
|
+
quality_metrics: "standard",
|
|
145
249
|
output_format: "png",
|
|
146
250
|
output_dpi: 2,
|
|
147
|
-
colormap: "coolwarm"
|
|
148
|
-
_job_type: "train_map"
|
|
251
|
+
colormap: "coolwarm"
|
|
149
252
|
};
|
|
150
|
-
const data = (await apiCall("POST",
|
|
253
|
+
const data = (await apiCall("POST", "/v1/jobs", { dataset_id, params }));
|
|
151
254
|
return { content: [{ type: "text", text: `Baseline study submitted. Job ID: ${data.id}\nGrid size: ${side}x${side}\nNormalization: MAD\n\nPoll with jobs(action=status, job_id="${data.id}") until complete, then retrieve with results(action=get, job_id="${data.id}").` }] };
|
|
152
255
|
}
|
|
153
|
-
if (action === "train_map") {
|
|
154
|
-
const { preset, grid_x, grid_y, epochs, model, periodic, columns, cyclic_features, temporal_features, feature_weights, transforms, auto_log_transforms, time_delay_embeddings, categorical_features, mca_features, hierarchical_features, normalize, sigma_f, learning_rate, batch_size, quality_metrics, backend, output_format, output_dpi, colormap, row_range, } = args;
|
|
256
|
+
if (action === "train_map" || action === "train_siom_map") {
|
|
257
|
+
const { preset, grid_x, grid_y, epochs, model, periodic, columns, cyclic_features, temporal_features, feature_weights, transforms, auto_log_transforms, time_delay_embeddings, categorical_features, mca_features, hierarchical_features, normalize, sigma_f, learning_rate, batch_size, quality_metrics, backend, output_format, output_dpi, colormap, row_range, gamma, gamma_f, siom_decay, siom_penalty, penalty_alpha, reset_per_epoch, } = args;
|
|
155
258
|
let PRESETS = {};
|
|
156
259
|
try {
|
|
157
|
-
|
|
158
|
-
PRESETS = configData?.presets || {};
|
|
260
|
+
PRESETS = await fetchTrainingPresets();
|
|
159
261
|
}
|
|
160
262
|
catch (e) {
|
|
161
263
|
if (e.httpStatus === 401 || e.httpStatus === 403)
|
|
@@ -166,58 +268,28 @@ export function registerJobsTool(server, description) {
|
|
|
166
268
|
}
|
|
167
269
|
if (!dataset_id)
|
|
168
270
|
throw new Error("jobs(train_map) requires dataset_id");
|
|
169
|
-
const
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
if (hierarchical_features?.length)
|
|
192
|
-
params.hierarchical_features = hierarchical_features;
|
|
193
|
-
if (transforms && Object.keys(transforms).length > 0)
|
|
194
|
-
params.transforms = transforms;
|
|
195
|
-
if (temporal_features?.length)
|
|
196
|
-
params.temporal_features = temporal_features;
|
|
197
|
-
if (feature_weights && Object.keys(feature_weights).length > 0)
|
|
198
|
-
params.feature_weights = feature_weights;
|
|
199
|
-
if (sigma_f !== undefined)
|
|
200
|
-
params.sigma_f = sigma_f;
|
|
201
|
-
if (learning_rate !== undefined)
|
|
202
|
-
params.learning_rate = learning_rate;
|
|
203
|
-
if (batch_size !== undefined)
|
|
204
|
-
params.batch_size = batch_size;
|
|
205
|
-
else if (p)
|
|
206
|
-
params.batch_size = p.batch_size;
|
|
207
|
-
if (quality_metrics !== undefined)
|
|
208
|
-
params.quality_metrics = quality_metrics;
|
|
209
|
-
if (backend !== undefined && backend !== "auto")
|
|
210
|
-
params.backend = backend;
|
|
211
|
-
else if (p?.backend)
|
|
212
|
-
params.backend = p.backend;
|
|
213
|
-
params.output_format = output_format ?? "png";
|
|
214
|
-
const dpiMap = { standard: 1, retina: 2, print: 4 };
|
|
215
|
-
if (output_dpi && output_dpi !== "retina")
|
|
216
|
-
params.output_dpi = dpiMap[output_dpi] ?? 2;
|
|
217
|
-
if (colormap)
|
|
218
|
-
params.colormap = colormap;
|
|
219
|
-
if (row_range && row_range.length >= 2 && row_range[0] <= row_range[1])
|
|
220
|
-
params.row_range = row_range;
|
|
271
|
+
const { params, paramSummary, effectiveGrid } = buildTrainMapParams({
|
|
272
|
+
preset, grid_x, grid_y, epochs, model, periodic, columns, cyclic_features,
|
|
273
|
+
temporal_features, feature_weights, transforms, auto_log_transforms,
|
|
274
|
+
time_delay_embeddings, categorical_features, mca_features, hierarchical_features,
|
|
275
|
+
normalize, sigma_f, learning_rate, batch_size, quality_metrics, backend,
|
|
276
|
+
output_format, output_dpi, colormap, row_range,
|
|
277
|
+
}, PRESETS);
|
|
278
|
+
if (action === "train_siom_map") {
|
|
279
|
+
params._job_type = "train_siom";
|
|
280
|
+
if (gamma !== undefined)
|
|
281
|
+
params.gamma = gamma;
|
|
282
|
+
if (gamma_f !== undefined)
|
|
283
|
+
params.gamma_f = gamma_f;
|
|
284
|
+
if (siom_decay !== undefined)
|
|
285
|
+
params.siom_decay = siom_decay;
|
|
286
|
+
if (siom_penalty !== undefined)
|
|
287
|
+
params.siom_penalty = siom_penalty;
|
|
288
|
+
if (penalty_alpha !== undefined)
|
|
289
|
+
params.penalty_alpha = penalty_alpha;
|
|
290
|
+
if (reset_per_epoch !== undefined)
|
|
291
|
+
params.reset_per_epoch = reset_per_epoch;
|
|
292
|
+
}
|
|
221
293
|
let totalRows = 0;
|
|
222
294
|
try {
|
|
223
295
|
const preview = (await apiCall("GET", `/v1/datasets/${dataset_id}/preview?n_rows=1`));
|
|
@@ -226,26 +298,15 @@ export function registerJobsTool(server, description) {
|
|
|
226
298
|
catch { /* ignore */ }
|
|
227
299
|
const data = (await apiCall("POST", "/v1/jobs", { dataset_id, params }));
|
|
228
300
|
const newJobId = data.id;
|
|
229
|
-
const
|
|
230
|
-
|
|
231
|
-
const effectiveBatch = params.batch_size;
|
|
232
|
-
const effectiveBackend = params.backend;
|
|
233
|
-
const paramSummary = [
|
|
234
|
-
effectiveGrid ? `grid=${effectiveGrid[0]}×${effectiveGrid[1]}` : "grid=auto",
|
|
235
|
-
effectiveEpochs ? `epochs=${Array.isArray(effectiveEpochs) ? effectiveEpochs.join("+") : effectiveEpochs}` : "epochs=auto",
|
|
236
|
-
effectiveBatch ? `batch=${effectiveBatch}` : "batch=auto",
|
|
237
|
-
`model=${model}`,
|
|
238
|
-
effectiveBackend ? `backend=${effectiveBackend}` : "",
|
|
239
|
-
preset ? `(from preset: ${preset})` : "",
|
|
240
|
-
].filter(Boolean).join(", ");
|
|
241
|
-
data.effective_params = paramSummary;
|
|
301
|
+
const variantPrefix = action === "train_siom_map" ? "variant=siom" : "variant=som";
|
|
302
|
+
data.effective_params = `${variantPrefix}, ${paramSummary}`;
|
|
242
303
|
try {
|
|
243
304
|
const sys = (await apiCall("GET", "/v1/system/info"));
|
|
244
305
|
const pending = Number(sys.status?.pending_jobs ?? sys.pending_jobs ?? 0);
|
|
245
306
|
const totalEta = Number(sys.training_time_estimates_seconds?.total ??
|
|
246
307
|
(sys.gpu_available ? 45 : 120));
|
|
247
308
|
const waitMinutes = Math.round((pending * totalEta) / 60);
|
|
248
|
-
let msg = `Job submitted (${paramSummary}). `;
|
|
309
|
+
let msg = `Job submitted (${variantPrefix}, ${paramSummary}). `;
|
|
249
310
|
if (waitMinutes > 1)
|
|
250
311
|
msg += `You are #${pending + 1} in queue. Estimated wait: ~${waitMinutes} min. `;
|
|
251
312
|
msg += `Poll with jobs(action=status, job_id="${newJobId}"). When status is completed, use results(action=get, job_id="${newJobId}") to view the map and metrics.`;
|
|
@@ -255,7 +316,7 @@ export function registerJobsTool(server, description) {
|
|
|
255
316
|
data.message = msg;
|
|
256
317
|
}
|
|
257
318
|
catch {
|
|
258
|
-
let msg = `Job submitted (${paramSummary}). Poll with jobs(action=status, job_id="${newJobId}"). When status is completed, use results(action=get, job_id="${newJobId}") to view the map and metrics.`;
|
|
319
|
+
let msg = `Job submitted (${variantPrefix}, ${paramSummary}). Poll with jobs(action=status, job_id="${newJobId}"). When status is completed, use results(action=get, job_id="${newJobId}") to view the map and metrics.`;
|
|
259
320
|
if (effectiveGrid && totalRows > 0 && effectiveGrid[0] * effectiveGrid[1] > totalRows * 0.75) {
|
|
260
321
|
msg += ` Note: Grid may be large for ${totalRows} rows (consider grid=auto for fewer dead nodes).`;
|
|
261
322
|
}
|
|
@@ -263,6 +324,95 @@ export function registerJobsTool(server, description) {
|
|
|
263
324
|
}
|
|
264
325
|
return textResult(data);
|
|
265
326
|
}
|
|
327
|
+
if (action === "train_floop_chain") {
|
|
328
|
+
const { columns, cyclic_features, temporal_features, feature_weights, transforms, auto_log_transforms, normalize, row_range, output_format, output_dpi, colormap, topology, max_nodes, effort, n_initial, n_passes, growth_interval, neighborhood_size, edge_max_age, max_degree, gamma, siom_decay, siom_penalty, penalty_alpha, error_threshold, error_decay, ring_close_threshold, sigma_0, sigma_f, eta_0, eta_f, elastic_lambda, elastic_mu, elastic_anchor, anchor_percentile, } = args;
|
|
329
|
+
if (!dataset_id)
|
|
330
|
+
throw new Error("jobs(train_floop_chain) requires dataset_id");
|
|
331
|
+
const params = {
|
|
332
|
+
_job_type: "train_floop_siom",
|
|
333
|
+
topology,
|
|
334
|
+
effort,
|
|
335
|
+
normalize,
|
|
336
|
+
output_format: output_format ?? "png",
|
|
337
|
+
};
|
|
338
|
+
if (max_nodes !== undefined)
|
|
339
|
+
params.max_nodes = max_nodes;
|
|
340
|
+
if (columns?.length)
|
|
341
|
+
params.columns = columns;
|
|
342
|
+
if (cyclic_features?.length)
|
|
343
|
+
params.cyclic_features = cyclic_features;
|
|
344
|
+
if (temporal_features?.length)
|
|
345
|
+
params.temporal_features = temporal_features;
|
|
346
|
+
if (feature_weights && Object.keys(feature_weights).length > 0)
|
|
347
|
+
params.feature_weights = feature_weights;
|
|
348
|
+
if (transforms && Object.keys(transforms).length > 0)
|
|
349
|
+
params.transforms = transforms;
|
|
350
|
+
if (auto_log_transforms)
|
|
351
|
+
params.auto_log_transforms = auto_log_transforms;
|
|
352
|
+
if (row_range && row_range.length >= 2 && row_range[0] <= row_range[1])
|
|
353
|
+
params.row_range = row_range;
|
|
354
|
+
const dpiMap = { standard: 1, retina: 2, print: 4 };
|
|
355
|
+
if (output_dpi && output_dpi !== "retina")
|
|
356
|
+
params.output_dpi = dpiMap[output_dpi] ?? 2;
|
|
357
|
+
if (colormap)
|
|
358
|
+
params.colormap = colormap;
|
|
359
|
+
if (n_initial !== undefined)
|
|
360
|
+
params.n_initial = n_initial;
|
|
361
|
+
if (n_passes !== undefined)
|
|
362
|
+
params.n_passes = n_passes;
|
|
363
|
+
if (growth_interval !== undefined)
|
|
364
|
+
params.growth_interval = growth_interval;
|
|
365
|
+
if (neighborhood_size !== undefined)
|
|
366
|
+
params.neighborhood_size = neighborhood_size;
|
|
367
|
+
if (edge_max_age !== undefined)
|
|
368
|
+
params.edge_max_age = edge_max_age;
|
|
369
|
+
if (max_degree !== undefined)
|
|
370
|
+
params.max_degree = max_degree;
|
|
371
|
+
if (gamma !== undefined)
|
|
372
|
+
params.gamma = gamma;
|
|
373
|
+
if (siom_decay !== undefined)
|
|
374
|
+
params.siom_decay = siom_decay;
|
|
375
|
+
if (siom_penalty !== undefined)
|
|
376
|
+
params.siom_penalty = siom_penalty;
|
|
377
|
+
if (penalty_alpha !== undefined)
|
|
378
|
+
params.penalty_alpha = penalty_alpha;
|
|
379
|
+
if (error_threshold !== undefined)
|
|
380
|
+
params.error_threshold = error_threshold;
|
|
381
|
+
if (error_decay !== undefined)
|
|
382
|
+
params.error_decay = error_decay;
|
|
383
|
+
if (ring_close_threshold !== undefined)
|
|
384
|
+
params.ring_close_threshold = ring_close_threshold;
|
|
385
|
+
if (sigma_0 !== undefined)
|
|
386
|
+
params.sigma_0 = sigma_0;
|
|
387
|
+
if (sigma_f !== undefined)
|
|
388
|
+
params.sigma_f = sigma_f;
|
|
389
|
+
if (eta_0 !== undefined)
|
|
390
|
+
params.eta_0 = eta_0;
|
|
391
|
+
if (eta_f !== undefined)
|
|
392
|
+
params.eta_f = eta_f;
|
|
393
|
+
if (elastic_lambda !== undefined)
|
|
394
|
+
params.elastic_lambda = elastic_lambda;
|
|
395
|
+
if (elastic_mu !== undefined)
|
|
396
|
+
params.elastic_mu = elastic_mu;
|
|
397
|
+
if (elastic_anchor !== undefined)
|
|
398
|
+
params.elastic_anchor = elastic_anchor;
|
|
399
|
+
if (anchor_percentile !== undefined)
|
|
400
|
+
params.anchor_percentile = anchor_percentile;
|
|
401
|
+
const data = (await apiCall("POST", "/v1/jobs", { dataset_id, params }));
|
|
402
|
+
const newJobId = data.id;
|
|
403
|
+
const paramSummary = [
|
|
404
|
+
"variant=floop",
|
|
405
|
+
`topology=${topology ?? "free"}`,
|
|
406
|
+
`max_nodes=${max_nodes ?? 60}`,
|
|
407
|
+
`effort=${effort ?? "standard"}`,
|
|
408
|
+
gamma !== undefined ? `gamma=${gamma}` : "",
|
|
409
|
+
].filter(Boolean).join(", ");
|
|
410
|
+
data.effective_params = paramSummary;
|
|
411
|
+
data.message =
|
|
412
|
+
`Job submitted (${paramSummary}). Poll with jobs(action=status, job_id="${newJobId}"). ` +
|
|
413
|
+
`When status is completed, use results(action=get, job_id="${newJobId}") to view the chain artifacts and metrics.`;
|
|
414
|
+
return textResult(data);
|
|
415
|
+
}
|
|
266
416
|
if (action === "status") {
|
|
267
417
|
if (!job_id)
|
|
268
418
|
throw new Error("jobs(status) requires job_id");
|
package/dist/tools/jobs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../src/tools/jobs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../src/tools/jobs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"results.d.ts","sourceRoot":"","sources":["../../src/tools/results.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgBzE,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,GAAG;IAAE,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,OAAO,CAAC;YAAE,KAAK,EAAE;gBAAE,GAAG,EAAE,MAAM,CAAA;aAAE,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE,CAAA;CAAE,GACzF,IAAI,
|
|
1
|
+
{"version":3,"file":"results.d.ts","sourceRoot":"","sources":["../../src/tools/results.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgBzE,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,GAAG;IAAE,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,OAAO,CAAC;YAAE,KAAK,EAAE;gBAAE,GAAG,EAAE,MAAM,CAAA;aAAE,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE,CAAA;CAAE,GACzF,IAAI,CA8iBN"}
|
package/dist/tools/results.js
CHANGED
|
@@ -35,7 +35,7 @@ action=download: Save figures to disk. Use so user can open, share, or version f
|
|
|
35
35
|
|
|
36
36
|
action=recolor: Change colormap or output format — no retraining. Returns a new job_id; auto-polls 60s.
|
|
37
37
|
AFTER: use results(action=get, job_id=NEW_JOB_ID).
|
|
38
|
-
Colormaps: viridis, plasma, inferno, magma, cividis, turbo, coolwarm, balance, RdBu, Spectral.
|
|
38
|
+
Colormaps: viridis, plasma, inferno, magma, cividis, turbo, coolwarm, balance, hsv, twilight, RdBu, Spectral. Also: thermal, hot, grays, RdYlBu, delta, curl, phase, rainbow, tol_bright, tol_muted.
|
|
39
39
|
|
|
40
40
|
action=transition_flow: Temporal state transition arrows on the map grid. Only use when rows are in chronological order. If your data has no temporal ordering, transition_flow will still run but the arrows are meaningless — use for time-ordered data only.
|
|
41
41
|
- You pass the training job_id; the API returns a new result job_id. Use that new job_id for results(get) or results(download).
|
|
@@ -50,7 +50,7 @@ NOT FOR: Jobs that haven't completed. Use jobs(action=status) to check first.`,
|
|
|
50
50
|
figures: z
|
|
51
51
|
.union([z.enum(["default", "combined_only", "all", "images"]), z.array(z.string())])
|
|
52
52
|
.optional()
|
|
53
|
-
.describe("action=get: omit=combined only; 'all'=all plots; array=specific (combined,umatrix,hit_histogram,correlation,component_1..N). action=download: 'all'=all image files; array=specific filenames."),
|
|
53
|
+
.describe("action=get: omit=combined only; 'all'=all plots; array=specific (combined,umatrix,hit_histogram,learning_curve,correlation,component_1..N). action=download: 'all'=all image files; array=specific filenames."),
|
|
54
54
|
include_individual: z
|
|
55
55
|
.boolean()
|
|
56
56
|
.optional()
|
|
@@ -68,7 +68,7 @@ NOT FOR: Jobs that haven't completed. Use jobs(action=status) to check first.`,
|
|
|
68
68
|
colormap: z
|
|
69
69
|
.string()
|
|
70
70
|
.optional()
|
|
71
|
-
.describe("action=recolor: colormap name (default: coolwarm). action=transition_flow: U-matrix background colormap (default: grays). Examples: viridis, plasma, balance, RdBu."),
|
|
71
|
+
.describe("action=recolor: colormap name (default: coolwarm). action=transition_flow: U-matrix background colormap (default: grays). Examples: viridis, plasma, balance, hsv, twilight, RdBu, phase, rainbow."),
|
|
72
72
|
output_format: z
|
|
73
73
|
.enum(["png", "pdf", "svg"])
|
|
74
74
|
.optional()
|
|
@@ -219,6 +219,40 @@ NOT FOR: Jobs that haven't completed. Use jobs(action=status) to check first.`,
|
|
|
219
219
|
`Use results(action=download, job_id="${job_id}") to save predictions.csv.`,
|
|
220
220
|
].join("\n") });
|
|
221
221
|
}
|
|
222
|
+
else if (jobType === "train_floop_siom") {
|
|
223
|
+
const siom = summary.siom ?? {};
|
|
224
|
+
const growthEvents = summary.growth_events ?? [];
|
|
225
|
+
const files = summary.files ?? [];
|
|
226
|
+
const lines = [
|
|
227
|
+
`FLooP-SIOM training ${resultsHeader}`,
|
|
228
|
+
`Topology: ${summary.topology ?? "free"} | Nodes: ${summary.final_length ?? "?"} / ${summary.max_nodes ?? "?"} | Features: ${summary.n_features ?? 0} | Samples: ${summary.n_samples ?? 0}`,
|
|
229
|
+
`Passes: ${summary.n_passes ?? "?"} | Growth interval: ${summary.growth_interval ?? "?"} | Ring: ${summary.is_ring ?? false}`,
|
|
230
|
+
`Converged: ${summary.converged ?? false} | Total steps: ${summary.total_steps ?? "?"}`,
|
|
231
|
+
summary.training_duration_seconds !== undefined ? `Training duration: ${summary.training_duration_seconds}s` : "",
|
|
232
|
+
``,
|
|
233
|
+
`Quality Metrics:`,
|
|
234
|
+
` Quantization Error: ${summary.quantization_error !== undefined ? Number(summary.quantization_error).toFixed(4) : "N/A"} (lower is better)`,
|
|
235
|
+
` Topographic Error: ${summary.topographic_error !== undefined ? Number(summary.topographic_error).toFixed(4) : "N/A"} (lower is better)`,
|
|
236
|
+
``,
|
|
237
|
+
`SIOM Coverage:`,
|
|
238
|
+
` Utilization: ${siom.utilization !== undefined ? Number(siom.utilization).toFixed(4) : "N/A"}`,
|
|
239
|
+
` Dead fraction: ${siom.dead_fraction !== undefined ? Number(siom.dead_fraction).toFixed(4) : "N/A"}`,
|
|
240
|
+
` Gini: ${siom.gini !== undefined ? Number(siom.gini).toFixed(4) : "N/A"}`,
|
|
241
|
+
` Entropy: ${siom.entropy !== undefined ? Number(siom.entropy).toFixed(4) : "N/A"}`,
|
|
242
|
+
``,
|
|
243
|
+
`Features: ${(summary.features ?? []).join(", ")}`,
|
|
244
|
+
growthEvents.length > 0 ? `Growth events: ${growthEvents.length} (latest length ${growthEvents.at(-1)?.length ?? "?"})` : "Growth events: none recorded",
|
|
245
|
+
files.length > 0 ? `Artifacts: ${files.join(", ")}` : "",
|
|
246
|
+
].filter((l) => l !== "");
|
|
247
|
+
content.push({ type: "text", text: lines.join("\n") });
|
|
248
|
+
for (const name of getResultsImagesToFetch(jobType, summary, figures, include_individual)) {
|
|
249
|
+
const cap = getCaptionForImage(name);
|
|
250
|
+
if (cap)
|
|
251
|
+
content.push({ type: "text", text: cap });
|
|
252
|
+
await tryAttachImage(content, job_id, name);
|
|
253
|
+
inlinedImages.add(name);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
222
256
|
else {
|
|
223
257
|
const grid = summary.grid ?? [0, 0];
|
|
224
258
|
const features = summary.features ?? [];
|
|
@@ -252,6 +286,7 @@ NOT FOR: Jobs that haven't completed. Use jobs(action=status) to check first.`,
|
|
|
252
286
|
const topCorrLine = topCorrs && topCorrs.length > 0
|
|
253
287
|
? `Strongest feature correlations: ${topCorrs.map((t) => `${t.f1 ?? "?"} & ${t.f2 ?? "?"} (${typeof t.r === "number" ? Number(t.r).toFixed(2) : t.r})`).join(", ")}`
|
|
254
288
|
: "";
|
|
289
|
+
const siom = summary.siom;
|
|
255
290
|
const textSummary = [
|
|
256
291
|
`Map training ${resultsHeader}`,
|
|
257
292
|
`Grid: ${grid[0]}×${grid[1]} | Features: ${summary.n_features ?? 0} | Samples: ${summary.n_samples ?? 0}`,
|
|
@@ -272,6 +307,11 @@ NOT FOR: Jobs that haven't completed. Use jobs(action=status) to check first.`,
|
|
|
272
307
|
...(compLines ? [`Component value ranges:\n${compLines}`] : []),
|
|
273
308
|
...(clusterLines ? ["", "Cluster map (defining features):", clusterLines] : []),
|
|
274
309
|
...(topCorrLine ? ["", topCorrLine] : []),
|
|
310
|
+
...(siom ? ["", "SIOM coverage metrics:",
|
|
311
|
+
` Utilization: ${siom.utilization !== undefined ? Number(siom.utilization).toFixed(4) : "N/A"}`,
|
|
312
|
+
` Dead fraction: ${siom.dead_fraction !== undefined ? Number(siom.dead_fraction).toFixed(4) : "N/A"}`,
|
|
313
|
+
` Gini: ${siom.gini !== undefined ? Number(siom.gini).toFixed(4) : "N/A"}`,
|
|
314
|
+
` Entropy: ${siom.entropy !== undefined ? Number(siom.entropy).toFixed(4) : "N/A"}`] : []),
|
|
275
315
|
``, `Features: ${features.join(", ")}`,
|
|
276
316
|
summary.selected_columns ? `Selected columns: ${summary.selected_columns.join(", ")}` : "",
|
|
277
317
|
summary.transforms ? `Transforms: ${Object.entries(summary.transforms).map(([k, v]) => `${k}=${v}`).join(", ")}` : "",
|
|
@@ -285,7 +325,7 @@ NOT FOR: Jobs that haven't completed. Use jobs(action=status) to check first.`,
|
|
|
285
325
|
return "";
|
|
286
326
|
return `Columns not used in training: ${excluded.join(", ")}. You can project them onto this map with inference(action=project_columns, job_id=${job_id}, dataset_id=<dataset_id>, columns=[${excluded.map((c) => `"${c}"`).join(", ")}]) to see how they distribute across the topology. If you ran datasets(action=analyze) before training, any columns it recommended as "project later" are especially good candidates.`;
|
|
287
327
|
})(),
|
|
288
|
-
...(jobType === "train_som" ? ["", `Next: results(action=export, export_type=training_log) for learning curve; results(action=download) to save figures; jobs(action=compare, job_ids=[...]) to compare runs; inference(action=predict) to score new data; inference(action=project_columns) to project other variables onto the map.`] : []),
|
|
328
|
+
...((jobType === "train_som" || jobType === "train_siom") ? ["", `Next: results(action=export, export_type=training_log) for learning curve; results(action=download) to save figures; jobs(action=compare, job_ids=[...]) to compare runs; inference(action=predict) to score new data; inference(action=project_columns) to project other variables onto the map.`] : []),
|
|
289
329
|
].filter((l) => l !== "").join("\n");
|
|
290
330
|
content.push({ type: "text", text: textSummary });
|
|
291
331
|
const imagesToFetch = getResultsImagesToFetch(jobType, summary, figures, include_individual);
|
|
@@ -309,13 +349,13 @@ NOT FOR: Jobs that haven't completed. Use jobs(action=status) to check first.`,
|
|
|
309
349
|
await tryAttachImage(content, job_id, fname);
|
|
310
350
|
}
|
|
311
351
|
}
|
|
312
|
-
if (hasExportableJson && (jobType2 === "train_som" || jobType2 === "render_variant")) {
|
|
352
|
+
if (hasExportableJson && (jobType2 === "train_som" || jobType2 === "train_siom" || jobType2 === "render_variant")) {
|
|
313
353
|
content.push({ type: "text", text: `Structured data: results(action=export, export_type=weights|nodes|training_log)` });
|
|
314
354
|
}
|
|
315
355
|
const featuresForLog = summary.features ?? [];
|
|
316
356
|
const showAvailable = files.length > 0 && !(figures === "all" || figures === "images");
|
|
317
357
|
if (showAvailable) {
|
|
318
|
-
const logicalNames = jobType2 === "train_som" || jobType2 === "render_variant"
|
|
358
|
+
const logicalNames = jobType2 === "train_som" || jobType2 === "train_siom" || jobType2 === "render_variant"
|
|
319
359
|
? `Logical names: combined, umatrix, hit_histogram, correlation, ${featuresForLog.map((_, i) => `component_${i + 1}`).join(", ")}. `
|
|
320
360
|
: "";
|
|
321
361
|
content.push({ type: "text", text: `Available: ${files.join(", ")}. ${logicalNames}Use results(action=get, figures=[...]) for specific plots or results(action=get, figures=all) for all plots.` });
|
|
@@ -324,7 +364,7 @@ NOT FOR: Jobs that haven't completed. Use jobs(action=status) to check first.`,
|
|
|
324
364
|
}
|
|
325
365
|
if (action === "export") {
|
|
326
366
|
if (!exportType)
|
|
327
|
-
throw new Error("results(export) requires export_type
|
|
367
|
+
throw new Error("results(export) requires export_type: training_log, weights, nodes, clusters, or transition_matrix");
|
|
328
368
|
if (exportType === "training_log") {
|
|
329
369
|
const data = (await apiCall("GET", `/v1/results/${job_id}/training-log`));
|
|
330
370
|
const ordErrors = data.ordering_errors ?? [];
|