@iyulab/mloop-mcp 0.10.0 → 0.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -170,8 +170,18 @@ npm start
170
170
 
171
171
  # Test with MCP Inspector
172
172
  npx @modelcontextprotocol/inspector node build/index.js
173
+
174
+ # Run the tests (builds first; starts the server over stdio)
175
+ npm test
176
+
177
+ # Check that every tool passes the CLI only options it has (needs the mloop CLI; pass its path if not on PATH)
178
+ npm run check:cli -- /path/to/mloop
173
179
  ```
174
180
 
181
+ `check:cli` calls each tool with its schema filled in against a stand-in that records the command line, then compares
182
+ every option and argument with the real CLI's `--help`. Run it before a release and whenever a tool or the CLI's
183
+ options change — a tool passing an option the CLI does not have fails only when an agent calls it.
184
+
175
185
  ## Architecture
176
186
 
177
187
  ```
@@ -0,0 +1,8 @@
1
+ /**
2
+ * The package's own identity, read from the package.json that ships with it.
3
+ *
4
+ * The version a client sees in the MCP `initialize` answer must be the installed
5
+ * package's version; a copy in source drifts the first time the package is released.
6
+ */
7
+ export declare const packageVersion: string;
8
+ //# sourceMappingURL=package-info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-info.d.ts","sourceRoot":"","sources":["../src/package-info.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAaH,eAAO,MAAM,cAAc,EAAE,MAAyB,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * The package's own identity, read from the package.json that ships with it.
3
+ *
4
+ * The version a client sees in the MCP `initialize` answer must be the installed
5
+ * package's version; a copy in source drifts the first time the package is released.
6
+ */
7
+ import { readFileSync } from 'node:fs';
8
+ // build/package-info.js → ../package.json: the manifest npm installs beside build/.
9
+ const manifest = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf8'));
10
+ export const packageVersion = manifest.version;
11
+ //# sourceMappingURL=package-info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-info.js","sourceRoot":"","sources":["../src/package-info.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAMvC,oFAAoF;AACpF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CACzB,YAAY,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAC/C,CAAC;AAErB,MAAM,CAAC,MAAM,cAAc,GAAW,QAAQ,CAAC,OAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmCpE;;GAEG;AACH,wBAAgB,YAAY,IAAI,SAAS,CA6OxC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAoCpE;;GAEG;AACH,wBAAgB,YAAY,IAAI,SAAS,CA6OxC"}
package/build/server.js CHANGED
@@ -9,13 +9,14 @@ trainTool, train, trainSchema, predictTool, predict, predictSchema, listTool, li
9
9
  initTool, init, initSchema, validateTool, validate, validateSchema, prepTool, prep, prepSchema, logsTool, logs, logsSchema, feedbackTool, feedback, feedbackSchema, sampleTool, sample, sampleSchema, triggerTool, trigger, triggerSchema, driftTool, drift, driftSchema, analyzeTool, analyze, analyzeSchema, detectTool, detect, detectSchema, prepPlanTool, prepPlan, prepPlanSchema, featuresSelectTool, featuresSelect, featuresSelectSchema,
10
10
  // Composite workflow tools
11
11
  quickStartTool, quickStart, quickStartSchema, autoTrainTool, autoTrain, autoTrainSchema, projectOverviewTool, projectOverview, projectOverviewSchema, } from './tools/index.js';
12
+ import { packageVersion } from './package-info.js';
12
13
  /**
13
14
  * Create and configure the MCP server
14
15
  */
15
16
  export function createServer() {
16
17
  const server = new McpServer({
17
18
  name: 'mloop-mcp',
18
- version: '0.4.0',
19
+ version: packageVersion,
19
20
  });
20
21
  // === Existing tools ===
21
22
  // Register mloop_train
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,6 @@ export declare const detectSchema: z.ZodObject<{
7
7
  column: z.ZodOptional<z.ZodString>;
8
8
  threshold: z.ZodOptional<z.ZodNumber>;
9
9
  sensitivity: z.ZodOptional<z.ZodNumber>;
10
- period: z.ZodOptional<z.ZodNumber>;
11
10
  output: z.ZodOptional<z.ZodString>;
12
11
  }, z.core.$strip>;
13
12
  export type DetectParams = z.infer<typeof detectSchema>;
@@ -40,10 +39,6 @@ export declare const detectTool: {
40
39
  type: string;
41
40
  description: string;
42
41
  };
43
- period: {
44
- type: string;
45
- description: string;
46
- };
47
42
  output: {
48
43
  type: string;
49
44
  description: string;
@@ -1 +1 @@
1
- {"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../src/tools/detect.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,YAAY;;;;;;;iBAOvB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,wBAAsB,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAoCjI;AAED,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCtB,CAAC"}
1
+ {"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../src/tools/detect.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,YAAY;;;;;;iBAMvB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,wBAAsB,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAmCjI;AAED,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BtB,CAAC"}
@@ -9,14 +9,13 @@ import * as path from 'node:path';
9
9
  export const detectSchema = z.object({
10
10
  dataPath: z.string().describe('Path to the CSV file containing the time series'),
11
11
  column: z.string().optional().describe('Value column to monitor (auto-selected when the CSV has a single column)'),
12
- threshold: z.number().optional().describe('Anomaly decision threshold in [0, 1] (default 0.3)'),
13
- sensitivity: z.number().optional().describe('Detection margin sensitivity in [0, 100] — larger = tighter margin, more anomalies kept; does not affect control limits (default 99)'),
14
- period: z.number().optional().describe('Seasonality period in points (default: auto-detect; 0 = non-seasonal)'),
12
+ threshold: z.number().positive().optional().describe("Score above which a point is an anomaly (> 0; the score is a point's saliency relative to the points before it; default 3)"),
13
+ sensitivity: z.number().gt(0).lt(100).optional().describe('Coverage of the control limits in percent (0-100, exclusive; 99.73 = 3 sigma; default 99.73)'),
15
14
  output: z.string().optional().describe('Also write the full per-point result to this CSV file'),
16
15
  });
17
16
  export async function detect(params) {
18
17
  try {
19
- const { dataPath, column, threshold, sensitivity, period, output } = params;
18
+ const { dataPath, column, threshold, sensitivity, output } = params;
20
19
  const cliParams = {};
21
20
  if (column)
22
21
  cliParams['column'] = column;
@@ -24,8 +23,6 @@ export async function detect(params) {
24
23
  cliParams['threshold'] = threshold;
25
24
  if (sensitivity !== undefined)
26
25
  cliParams['sensitivity'] = sensitivity;
27
- if (period !== undefined)
28
- cliParams['period'] = period;
29
26
  if (output)
30
27
  cliParams['output'] = output;
31
28
  cliParams['json'] = true;
@@ -54,7 +51,7 @@ export async function detect(params) {
54
51
  }
55
52
  export const detectTool = {
56
53
  name: 'mloop_detect',
57
- description: 'One-shot time-series anomaly detection over an entire CSV series (SR-CNN, no training, no MLoop project required). Every point returns an anomaly verdict, score, an expectedValue, control limits (controlLower/controlUpper — the chartable band: normal points lie inside it, scaled by the residual dispersion) and the detection margin (marginLower/marginUpper — the gate behind the verdict: isAnomaly implies the value is outside it, but not the converse). Use this instead of train+predict when analyzing a whole series once.',
54
+ description: 'One-shot time-series anomaly detection over an entire CSV series (spectral residual, no training, no MLoop project required). Every point returns an anomaly verdict (isAnomaly), its score, an expectedValue and control limits (controlLower/controlUpper — the chartable band normal points lie inside); nearEdge marks points too close to the end of the series to judge as surely. Use this instead of train+predict when analyzing a whole series once.',
58
55
  inputSchema: {
59
56
  type: 'object',
60
57
  properties: {
@@ -68,15 +65,11 @@ export const detectTool = {
68
65
  },
69
66
  threshold: {
70
67
  type: 'number',
71
- description: 'Anomaly decision threshold in [0, 1] (default 0.3)',
68
+ description: "Score above which a point is an anomaly (> 0; the score is a point's saliency relative to the points before it; default 3)",
72
69
  },
73
70
  sensitivity: {
74
71
  type: 'number',
75
- description: 'Detection margin sensitivity in [0, 100] — larger = tighter margin, more anomalies kept; does not affect control limits (default 99)',
76
- },
77
- period: {
78
- type: 'number',
79
- description: 'Seasonality period in points (default: auto-detect; 0 = non-seasonal)',
72
+ description: 'Coverage of the control limits in percent (0-100, exclusive; 99.73 = 3 sigma; default 99.73)',
80
73
  },
81
74
  output: {
82
75
  type: 'string',
@@ -1 +1 @@
1
- {"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/tools/detect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/tools/detect.ts"],"names":[],"mappings":"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"}
@@ -10,10 +10,14 @@ export declare const feedbackSchema: z.ZodObject<{
10
10
  metrics: "metrics";
11
11
  }>;
12
12
  modelName: z.ZodOptional<z.ZodString>;
13
- value: z.ZodOptional<z.ZodString>;
14
13
  predictionId: z.ZodOptional<z.ZodString>;
14
+ value: z.ZodOptional<z.ZodString>;
15
+ source: z.ZodOptional<z.ZodString>;
16
+ weight: z.ZodOptional<z.ZodNumber>;
15
17
  }, z.core.$strip>;
16
18
  export type FeedbackParams = z.infer<typeof feedbackSchema>;
19
+ /** The CLI arguments for one call — the option names `mloop feedback <action>` accepts. */
20
+ export declare function feedbackArgs(params: FeedbackParams): string[];
17
21
  export declare function feedback(params: FeedbackParams): Promise<{
18
22
  content: Array<{
19
23
  type: 'text';
@@ -40,12 +44,21 @@ export declare const feedbackTool: {
40
44
  type: string;
41
45
  description: string;
42
46
  };
47
+ predictionId: {
48
+ type: string;
49
+ description: string;
50
+ };
43
51
  value: {
44
52
  type: string;
45
53
  description: string;
46
54
  };
47
- predictionId: {
55
+ source: {
56
+ type: string;
57
+ description: string;
58
+ };
59
+ weight: {
48
60
  type: string;
61
+ minimum: number;
49
62
  description: string;
50
63
  };
51
64
  };
@@ -1 +1 @@
1
- {"version":3,"file":"feedback.d.ts","sourceRoot":"","sources":["../../src/tools/feedback.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,cAAc;;;;;;;;;;iBAMzB,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,wBAAsB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CA0BrI;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BxB,CAAC"}
1
+ {"version":3,"file":"feedback.d.ts","sourceRoot":"","sources":["../../src/tools/feedback.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,cAAc;;;;;;;;;;;;iBASzB,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,2FAA2F;AAC3F,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,EAAE,CAY7D;AAED,wBAAsB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CA2BrI;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCxB,CAAC"}
@@ -8,21 +8,36 @@ import { formatError } from '../utils/errors.js';
8
8
  export const feedbackSchema = z.object({
9
9
  projectPath: z.string().describe('Path to MLoop project directory'),
10
10
  action: z.enum(['add', 'list', 'metrics']).describe('Feedback action to perform'),
11
- modelName: z.string().optional().describe('Model name (default: "default")'),
12
- value: z.string().optional().describe('Feedback value (for "add" action)'),
13
- predictionId: z.string().optional().describe('Prediction ID to add feedback for'),
11
+ modelName: z.string().optional().describe('Model name for "list" and "metrics" (default: "default")'),
12
+ predictionId: z.string().optional().describe('Prediction ID to add feedback for (required for "add")'),
13
+ value: z.string().optional().describe('The actual (ground-truth) value (required for "add")'),
14
+ source: z.string().optional().describe('Where the value came from, e.g. "human", "reviewer-llm" (for "add")'),
15
+ weight: z.number().nonnegative().optional().describe('How much this row counts in training and evaluation built from feedback — for a row reviewed with probability p, 1/p (for "add"; default 1)'),
14
16
  });
17
+ /** The CLI arguments for one call — the option names `mloop feedback <action>` accepts. */
18
+ export function feedbackArgs(params) {
19
+ const cliParams = {};
20
+ if (params.action === 'add') {
21
+ cliParams['prediction-id'] = params.predictionId;
22
+ cliParams['actual-value'] = params.value;
23
+ cliParams['source'] = params.source;
24
+ cliParams['weight'] = params.weight;
25
+ }
26
+ else {
27
+ cliParams['model'] = params.modelName;
28
+ cliParams['json'] = true;
29
+ }
30
+ return buildArgsWithPositional('feedback', [params.action], cliParams);
31
+ }
15
32
  export async function feedback(params) {
16
33
  try {
17
- const cliParams = {};
18
- if (params.modelName)
19
- cliParams['name'] = params.modelName;
20
- if (params.value)
21
- cliParams['value'] = params.value;
22
- if (params.predictionId)
23
- cliParams['prediction-id'] = params.predictionId;
24
- const args = buildArgsWithPositional('feedback', [params.action], cliParams);
25
- const result = await executeMloop(args, { cwd: params.projectPath });
34
+ if (params.action === 'add' && (!params.predictionId || params.value === undefined)) {
35
+ return {
36
+ content: [{ type: 'text', text: '"add" needs predictionId and value — the prediction ID from mloop_logs, and the actual value.' }],
37
+ isError: true,
38
+ };
39
+ }
40
+ const result = await executeMloop(feedbackArgs(params), { cwd: params.projectPath });
26
41
  const output = parseCliOutput(result.stdout);
27
42
  return {
28
43
  content: [{
@@ -43,7 +58,7 @@ export async function feedback(params) {
43
58
  }
44
59
  export const feedbackTool = {
45
60
  name: 'mloop_feedback',
46
- description: 'Manage feedback for model predictions. Add feedback, list existing feedback, or view feedback metrics.',
61
+ description: 'Manage feedback for model predictions. Add the actual value for a logged prediction (with its source and an optional weight), list existing feedback, or view feedback metrics (accuracy is weighted when feedback carries weights).',
47
62
  inputSchema: {
48
63
  type: 'object',
49
64
  properties: {
@@ -58,15 +73,24 @@ export const feedbackTool = {
58
73
  },
59
74
  modelName: {
60
75
  type: 'string',
61
- description: 'Model name (default: "default")',
76
+ description: 'Model name for "list" and "metrics" (default: "default")',
77
+ },
78
+ predictionId: {
79
+ type: 'string',
80
+ description: 'Prediction ID to add feedback for (required for "add")',
62
81
  },
63
82
  value: {
64
83
  type: 'string',
65
- description: 'Feedback value (for "add" action)',
84
+ description: 'The actual (ground-truth) value (required for "add")',
66
85
  },
67
- predictionId: {
86
+ source: {
68
87
  type: 'string',
69
- description: 'Prediction ID to add feedback for',
88
+ description: 'Where the value came from, e.g. "human", "reviewer-llm" (for "add")',
89
+ },
90
+ weight: {
91
+ type: 'number',
92
+ minimum: 0,
93
+ description: 'How much this row counts in training and evaluation built from feedback — for a row reviewed with probability p, 1/p (for "add"; default 1)',
70
94
  },
71
95
  },
72
96
  required: ['projectPath', 'action'],
@@ -1 +1 @@
1
- {"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/tools/feedback.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IACnE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACjF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IAC5E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAC1E,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;CAClF,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,MAAsB;IACnD,IAAI,CAAC;QACH,MAAM,SAAS,GAA4B,EAAE,CAAC;QAC9C,IAAI,MAAM,CAAC,SAAS;YAAE,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC;QAC3D,IAAI,MAAM,CAAC,KAAK;YAAE,SAAS,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QACpD,IAAI,MAAM,CAAC,YAAY;YAAE,SAAS,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC;QAE1E,MAAM,IAAI,GAAG,uBAAuB,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;QAC7E,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAE7C,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM,IAAI,YAAY,MAAM,CAAC,MAAM,aAAa;iBACvD,CAAC;SACH,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC;iBACzB,CAAC;YACF,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,wGAAwG;IACrH,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iCAAiC;aAC/C;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC;gBAChC,WAAW,EAAE,wFAAwF;aACtG;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iCAAiC;aAC/C;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,mCAAmC;aACjD;YACD,YAAY,EAAE;gBACZ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,mCAAmC;aACjD;SACF;QACD,QAAQ,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC;KACpC;IACD,OAAO,EAAE,QAAQ;CAClB,CAAC"}
1
+ {"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/tools/feedback.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,10 @@
4
4
  import { z } from 'zod';
5
5
  export declare const prepSchema: z.ZodObject<{
6
6
  projectPath: z.ZodString;
7
- config: z.ZodOptional<z.ZodString>;
7
+ modelName: z.ZodOptional<z.ZodString>;
8
+ input: z.ZodOptional<z.ZodString>;
9
+ output: z.ZodOptional<z.ZodString>;
10
+ dryRun: z.ZodOptional<z.ZodBoolean>;
8
11
  }, z.core.$strip>;
9
12
  export type PrepParams = z.infer<typeof prepSchema>;
10
13
  export declare function prep(params: PrepParams): Promise<{
@@ -24,7 +27,19 @@ export declare const prepTool: {
24
27
  type: string;
25
28
  description: string;
26
29
  };
27
- config: {
30
+ modelName: {
31
+ type: string;
32
+ description: string;
33
+ };
34
+ input: {
35
+ type: string;
36
+ description: string;
37
+ };
38
+ output: {
39
+ type: string;
40
+ description: string;
41
+ };
42
+ dryRun: {
28
43
  type: string;
29
44
  description: string;
30
45
  };
@@ -1 +1 @@
1
- {"version":3,"file":"prep.d.ts","sourceRoot":"","sources":["../../src/tools/prep.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,UAAU;;;iBAGrB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpD,wBAAsB,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAwB7H;AAED,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;CAkBpB,CAAC"}
1
+ {"version":3,"file":"prep.d.ts","sourceRoot":"","sources":["../../src/tools/prep.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,UAAU;;;;;;iBAMrB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpD,wBAAsB,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CA6B7H;AAED,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BpB,CAAC"}
@@ -7,13 +7,20 @@ import { parseCliOutput } from '../utils/parser.js';
7
7
  import { formatError } from '../utils/errors.js';
8
8
  export const prepSchema = z.object({
9
9
  projectPath: z.string().describe('Path to MLoop project directory'),
10
- config: z.string().optional().describe('Preprocessing config file path'),
10
+ modelName: z.string().optional().describe("Model whose prep steps (mloop.yaml) to run (default: 'default')"),
11
+ input: z.string().optional().describe('Input CSV file (default: datasets/train.csv)'),
12
+ output: z.string().optional().describe('Output CSV file (default: <input>_prep.csv)'),
13
+ dryRun: z.boolean().optional().describe('Show the pipeline steps without executing them'),
11
14
  });
12
15
  export async function prep(params) {
13
16
  try {
14
- const cliParams = {};
15
- if (params.config)
16
- cliParams['config'] = params.config;
17
+ const cliParams = {
18
+ name: params.modelName,
19
+ input: params.input,
20
+ output: params.output,
21
+ dryRun: params.dryRun,
22
+ json: true,
23
+ };
17
24
  const args = buildArgsWithPositional('prep', ['run'], cliParams);
18
25
  const result = await executeMloop(args, { cwd: params.projectPath });
19
26
  const output = parseCliOutput(result.stdout);
@@ -36,7 +43,7 @@ export async function prep(params) {
36
43
  }
37
44
  export const prepTool = {
38
45
  name: 'mloop_prep',
39
- description: 'Run the data preprocessing pipeline. Executes preprocessing scripts defined in the project configuration.',
46
+ description: "Run a model's preprocessing pipeline — the prep steps declared under the model in mloop.yaml (see mloop_prep_plan) — over a CSV file, writing the prepared file.",
40
47
  inputSchema: {
41
48
  type: 'object',
42
49
  properties: {
@@ -44,9 +51,21 @@ export const prepTool = {
44
51
  type: 'string',
45
52
  description: 'Path to MLoop project directory',
46
53
  },
47
- config: {
54
+ modelName: {
55
+ type: 'string',
56
+ description: "Model whose prep steps (mloop.yaml) to run (default: 'default')",
57
+ },
58
+ input: {
48
59
  type: 'string',
49
- description: 'Preprocessing config file path',
60
+ description: 'Input CSV file (default: datasets/train.csv)',
61
+ },
62
+ output: {
63
+ type: 'string',
64
+ description: 'Output CSV file (default: <input>_prep.csv)',
65
+ },
66
+ dryRun: {
67
+ type: 'boolean',
68
+ description: 'Show the pipeline steps without executing them',
50
69
  },
51
70
  },
52
71
  required: ['projectPath'],
@@ -1 +1 @@
1
- {"version":3,"file":"prep.js","sourceRoot":"","sources":["../../src/tools/prep.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IACnE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;CACzE,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,MAAkB;IAC3C,IAAI,CAAC;QACH,MAAM,SAAS,GAA4B,EAAE,CAAC;QAC9C,IAAI,MAAM,CAAC,MAAM;YAAE,SAAS,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QAEvD,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAE7C,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM,IAAI,uCAAuC;iBACxD,CAAC;SACH,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC;iBACzB,CAAC;YACF,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,2GAA2G;IACxH,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iCAAiC;aAC/C;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,gCAAgC;aAC9C;SACF;QACD,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;IACD,OAAO,EAAE,IAAI;CACd,CAAC"}
1
+ {"version":3,"file":"prep.js","sourceRoot":"","sources":["../../src/tools/prep.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IACnE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;IAC5G,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;IACrF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;IACrF,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;CAC1F,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,MAAkB;IAC3C,IAAI,CAAC;QACH,MAAM,SAAS,GAA4B;YACzC,IAAI,EAAE,MAAM,CAAC,SAAS;YACtB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,IAAI,EAAE,IAAI;SACX,CAAC;QAEF,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAE7C,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM,IAAI,uCAAuC;iBACxD,CAAC;SACH,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC;iBACzB,CAAC;YACF,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,kKAAkK;IAC/K,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iCAAiC;aAC/C;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iEAAiE;aAC/E;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8CAA8C;aAC5D;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,6CAA6C;aAC3D;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,gDAAgD;aAC9D;SACF;QACD,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;IACD,OAAO,EAAE,IAAI;CACd,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * mloop_sample tool - Data sampling operations
2
+ * mloop_sample tool - Sample data from CSV files or prediction logs
3
3
  */
4
4
  import { z } from 'zod';
5
5
  export declare const sampleSchema: z.ZodObject<{
@@ -8,11 +8,16 @@ export declare const sampleSchema: z.ZodObject<{
8
8
  create: "create";
9
9
  stats: "stats";
10
10
  }>;
11
+ modelName: z.ZodOptional<z.ZodString>;
11
12
  dataFile: z.ZodOptional<z.ZodString>;
12
13
  size: z.ZodOptional<z.ZodNumber>;
13
14
  strategy: z.ZodOptional<z.ZodString>;
15
+ label: z.ZodOptional<z.ZodString>;
16
+ output: z.ZodOptional<z.ZodString>;
14
17
  }, z.core.$strip>;
15
18
  export type SampleParams = z.infer<typeof sampleSchema>;
19
+ /** The CLI arguments for one call — the option names `mloop sample <action>` accepts. */
20
+ export declare function sampleArgs(params: SampleParams): string[];
16
21
  export declare function sample(params: SampleParams): Promise<{
17
22
  content: Array<{
18
23
  type: 'text';
@@ -35,6 +40,10 @@ export declare const sampleTool: {
35
40
  enum: string[];
36
41
  description: string;
37
42
  };
43
+ modelName: {
44
+ type: string;
45
+ description: string;
46
+ };
38
47
  dataFile: {
39
48
  type: string;
40
49
  description: string;
@@ -47,6 +56,14 @@ export declare const sampleTool: {
47
56
  type: string;
48
57
  description: string;
49
58
  };
59
+ label: {
60
+ type: string;
61
+ description: string;
62
+ };
63
+ output: {
64
+ type: string;
65
+ description: string;
66
+ };
50
67
  };
51
68
  required: string[];
52
69
  };
@@ -1 +1 @@
1
- {"version":3,"file":"sample.d.ts","sourceRoot":"","sources":["../../src/tools/sample.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,YAAY;;;;;;;;;iBAMvB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,wBAAsB,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CA4BjI;AAED,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BtB,CAAC"}
1
+ {"version":3,"file":"sample.d.ts","sourceRoot":"","sources":["../../src/tools/sample.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,YAAY;;;;;;;;;;;;iBAWvB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,yFAAyF;AACzF,wBAAgB,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE,CAczD;AAED,wBAAsB,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAoBjI;AAED,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CtB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * mloop_sample tool - Data sampling operations
2
+ * mloop_sample tool - Sample data from CSV files or prediction logs
3
3
  */
4
4
  import { z } from 'zod';
5
5
  import { executeMloop, buildArgsWithPositional } from '../executor.js';
@@ -8,22 +8,33 @@ import { formatError } from '../utils/errors.js';
8
8
  export const sampleSchema = z.object({
9
9
  projectPath: z.string().describe('Path to MLoop project directory'),
10
10
  action: z.enum(['create', 'stats']).describe('Sample action to perform'),
11
- dataFile: z.string().optional().describe('Data file to sample from'),
12
- size: z.number().positive().optional().describe('Sample size (number of rows)'),
13
- strategy: z.string().optional().describe('Sampling strategy (e.g., "random", "stratified")'),
11
+ modelName: z.string().optional().describe('Model whose logged predictions and feedback to sample ("create": a retraining dataset — the feedback under the model\'s label, weighted when feedback carries weights; "stats": default "default")'),
12
+ dataFile: z.string().optional().describe('CSV file to sample from instead of prediction logs ("create" only)'),
13
+ size: z.number().int().positive().optional().describe('Number of rows to sample (default 1000)'),
14
+ strategy: z.string().optional().describe('Sampling strategy — logs: random, recent, feedback-priority, stratified, low-confidence; CSV: random, head, stratified'),
15
+ label: z.string().optional().describe('Label column for stratified CSV sampling'),
16
+ output: z.string().optional().describe('Output CSV path'),
14
17
  });
18
+ /** The CLI arguments for one call — the option names `mloop sample <action>` accepts. */
19
+ export function sampleArgs(params) {
20
+ const cliParams = {};
21
+ if (params.action === 'create') {
22
+ cliParams['from'] = params.dataFile;
23
+ cliParams['model'] = params.dataFile ? undefined : (params.modelName ?? 'default');
24
+ cliParams['rows'] = params.size;
25
+ cliParams['strategy'] = params.strategy;
26
+ cliParams['label'] = params.label;
27
+ cliParams['output'] = params.output;
28
+ }
29
+ else {
30
+ cliParams['model'] = params.modelName;
31
+ cliParams['json'] = true;
32
+ }
33
+ return buildArgsWithPositional('sample', [params.action], cliParams);
34
+ }
15
35
  export async function sample(params) {
16
36
  try {
17
- const positional = [params.action];
18
- if (params.dataFile)
19
- positional.push(params.dataFile);
20
- const cliParams = {};
21
- if (params.size)
22
- cliParams['size'] = params.size;
23
- if (params.strategy)
24
- cliParams['strategy'] = params.strategy;
25
- const args = buildArgsWithPositional('sample', positional, cliParams);
26
- const result = await executeMloop(args, { cwd: params.projectPath });
37
+ const result = await executeMloop(sampleArgs(params), { cwd: params.projectPath });
27
38
  const output = parseCliOutput(result.stdout);
28
39
  return {
29
40
  content: [{
@@ -44,7 +55,7 @@ export async function sample(params) {
44
55
  }
45
56
  export const sampleTool = {
46
57
  name: 'mloop_sample',
47
- description: 'Create data samples or view sampling statistics. Supports random and stratified sampling strategies.',
58
+ description: 'Create a sampled dataset — from a model\'s logged predictions and feedback (a retraining dataset: feedback under the model\'s label, with a weight column when feedback carries weights) or from a CSV file — or view sampling statistics.',
48
59
  inputSchema: {
49
60
  type: 'object',
50
61
  properties: {
@@ -57,17 +68,29 @@ export const sampleTool = {
57
68
  enum: ['create', 'stats'],
58
69
  description: 'Sample action: "create" to generate a sample, "stats" to view statistics',
59
70
  },
71
+ modelName: {
72
+ type: 'string',
73
+ description: 'Model whose logged predictions and feedback to sample (default: "default")',
74
+ },
60
75
  dataFile: {
61
76
  type: 'string',
62
- description: 'Data file to sample from',
77
+ description: 'CSV file to sample from instead of prediction logs ("create" only)',
63
78
  },
64
79
  size: {
65
80
  type: 'number',
66
- description: 'Sample size (number of rows)',
81
+ description: 'Number of rows to sample (default 1000)',
67
82
  },
68
83
  strategy: {
69
84
  type: 'string',
70
- description: 'Sampling strategy (e.g., "random", "stratified")',
85
+ description: 'Sampling strategy — logs: random, recent, feedback-priority, stratified, low-confidence; CSV: random, head, stratified',
86
+ },
87
+ label: {
88
+ type: 'string',
89
+ description: 'Label column for stratified CSV sampling',
90
+ },
91
+ output: {
92
+ type: 'string',
93
+ description: 'Output CSV path',
71
94
  },
72
95
  },
73
96
  required: ['projectPath', 'action'],
@@ -1 +1 @@
1
- {"version":3,"file":"sample.js","sourceRoot":"","sources":["../../src/tools/sample.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sample.js","sourceRoot":"","sources":["../../src/tools/sample.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IACnE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IACxE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACvC,oMAAoM,CAAC;IACvM,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oEAAoE,CAAC;IAC9G,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;IAChG,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACtC,wHAAwH,CAAC;IAC3H,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IACjF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;CAC1D,CAAC,CAAC;AAIH,yFAAyF;AACzF,MAAM,UAAU,UAAU,CAAC,MAAoB;IAC7C,MAAM,SAAS,GAA4B,EAAE,CAAC;IAC9C,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QACpC,SAAS,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC;QACnF,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;QAChC,SAAS,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QACxC,SAAS,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;QAClC,SAAS,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC,CAAC;SAAM,CAAC;QACN,SAAS,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC;QACtC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAC3B,CAAC;IACD,OAAO,uBAAuB,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,MAAoB;IAC/C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QACnF,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAE7C,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,MAAM,IAAI,UAAU,MAAM,CAAC,MAAM,aAAa;iBACrD,CAAC;SACH,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC;iBACzB,CAAC;YACF,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,4OAA4O;IACzP,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iCAAiC;aAC/C;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;gBACzB,WAAW,EAAE,0EAA0E;aACxF;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,4EAA4E;aAC1F;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,oEAAoE;aAClF;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,yCAAyC;aACvD;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,wHAAwH;aACtI;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,0CAA0C;aACxD;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iBAAiB;aAC/B;SACF;QACD,QAAQ,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC;KACpC;IACD,OAAO,EAAE,MAAM;CAChB,CAAC"}
@@ -19,6 +19,7 @@ export declare const trainSchema: z.ZodObject<{
19
19
  noPromote: z.ZodOptional<z.ZodBoolean>;
20
20
  dropMissingLabels: z.ZodOptional<z.ZodBoolean>;
21
21
  weight: z.ZodOptional<z.ZodString>;
22
+ additionalDataFiles: z.ZodOptional<z.ZodArray<z.ZodString>>;
22
23
  portable: z.ZodOptional<z.ZodBoolean>;
23
24
  }, z.core.$strip>;
24
25
  export type TrainParams = z.infer<typeof trainSchema>;
@@ -84,6 +85,13 @@ export declare const trainTool: {
84
85
  type: string;
85
86
  description: string;
86
87
  };
88
+ additionalDataFiles: {
89
+ type: string;
90
+ items: {
91
+ type: string;
92
+ };
93
+ description: string;
94
+ };
87
95
  portable: {
88
96
  type: string;
89
97
  description: string;
@@ -1 +1 @@
1
- {"version":3,"file":"train.d.ts","sourceRoot":"","sources":["../../src/tools/train.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;iBAgBtB,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD,wBAAsB,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CA8C/H;AAED,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+DrB,CAAC"}
1
+ {"version":3,"file":"train.d.ts","sourceRoot":"","sources":["../../src/tools/train.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;iBAkBtB,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD,wBAAsB,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAiD/H;AAED,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoErB,CAAC"}
@@ -20,14 +20,17 @@ export const trainSchema = z.object({
20
20
  noPromote: z.boolean().optional().describe('Skip automatic promotion to production'),
21
21
  dropMissingLabels: z.boolean().optional().describe('Drop rows with missing label values before training'),
22
22
  weight: z.string().optional().describe('Column that weights the rows (e.g. 1/π for sampled labels); never a feature'),
23
+ additionalDataFiles: z.array(z.string()).optional().describe('Files merged after dataFile (e.g. a retraining set from mloop_sample create); a file without the weight column counts its rows 1'),
23
24
  portable: z.boolean().optional().describe('Train only with steps ONNX can express, so mloop_export_onnx can export the model'),
24
25
  });
25
26
  export async function train(params) {
26
27
  try {
27
28
  const { projectPath, dataFile, label, ...options } = params;
28
29
  // Build positional arguments
30
+ // More than one file goes through --data, which merges them; one file is the positional argument.
31
+ const more = options.additionalDataFiles ?? [];
29
32
  const positional = [];
30
- if (dataFile)
33
+ if (dataFile && more.length === 0)
31
34
  positional.push(dataFile);
32
35
  // Map parameters to CLI flags
33
36
  const cliParams = {};
@@ -54,6 +57,8 @@ export async function train(params) {
54
57
  if (options.portable)
55
58
  cliParams['portable'] = true;
56
59
  const args = buildArgsWithPositional('train', positional, cliParams);
60
+ if (more.length > 0)
61
+ args.push('--data', dataFile ?? 'datasets/train.csv', ...more);
57
62
  const result = await executeMloop(args, {
58
63
  cwd: projectPath,
59
64
  timeout: 600_000, // 10 minutes for training
@@ -131,6 +136,11 @@ export const trainTool = {
131
136
  type: 'string',
132
137
  description: 'Column whose values weight the rows — the relative frequency each row should have (1/π for a row sampled with probability π, lower for a less reliable label source). Never used as a feature; the test metrics are weighted too. Binary, multiclass and regression; refused with --balance, on the label, or on another task',
133
138
  },
139
+ additionalDataFiles: {
140
+ type: 'array',
141
+ items: { type: 'string' },
142
+ description: 'Files merged after dataFile (e.g. a retraining set from mloop_sample create); a file without the weight column counts its rows 1',
143
+ },
134
144
  portable: {
135
145
  type: 'boolean',
136
146
  description: 'Train only with steps an ONNX runtime computes exactly (text columns as character n-gram counts), so mloop_export_onnx can export the model. Binary, multiclass and regression',
@@ -1 +1 @@
1
- {"version":3,"file":"train.js","sourceRoot":"","sources":["../../src/tools/train.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"train.js","sourceRoot":"","sources":["../../src/tools/train.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iyulab/mloop-mcp",
3
- "version": "0.10.0",
3
+ "version": "0.11.1",
4
4
  "description": "MCP server for MLoop CLI - ML.NET MLOps tool",
5
5
  "type": "module",
6
6
  "main": "build/index.js",
@@ -18,7 +18,9 @@
18
18
  "start": "node build/index.js",
19
19
  "dev": "npm run build && npm run start",
20
20
  "clean": "rimraf build",
21
- "prepublishOnly": "npm run clean && npm run build"
21
+ "prepublishOnly": "npm run clean && npm run build",
22
+ "check:cli": "npm run build && node scripts/check-cli-options.mjs",
23
+ "test": "npm run build && node --test"
22
24
  },
23
25
  "keywords": [
24
26
  "mcp",