@iyulab/mloop-mcp 0.4.0 → 0.5.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.
Files changed (63) hide show
  1. package/README.md +3 -2
  2. package/build/server.d.ts.map +1 -1
  3. package/build/server.js +3 -1
  4. package/build/server.js.map +1 -1
  5. package/build/tools/analyze.d.ts +8 -14
  6. package/build/tools/analyze.d.ts.map +1 -1
  7. package/build/tools/auto-train.d.ts +1 -13
  8. package/build/tools/auto-train.d.ts.map +1 -1
  9. package/build/tools/compare.d.ts +2 -10
  10. package/build/tools/compare.d.ts.map +1 -1
  11. package/build/tools/detect.d.ts +56 -0
  12. package/build/tools/detect.d.ts.map +1 -0
  13. package/build/tools/detect.js +90 -0
  14. package/build/tools/detect.js.map +1 -0
  15. package/build/tools/evaluate.d.ts +1 -11
  16. package/build/tools/evaluate.d.ts.map +1 -1
  17. package/build/tools/features-select.d.ts +1 -13
  18. package/build/tools/features-select.d.ts.map +1 -1
  19. package/build/tools/feedback.d.ts +6 -14
  20. package/build/tools/feedback.d.ts.map +1 -1
  21. package/build/tools/index.d.ts +4 -0
  22. package/build/tools/index.d.ts.map +1 -1
  23. package/build/tools/index.js +2 -0
  24. package/build/tools/index.js.map +1 -1
  25. package/build/tools/info.d.ts +1 -15
  26. package/build/tools/info.d.ts.map +1 -1
  27. package/build/tools/init.d.ts +6 -8
  28. package/build/tools/init.d.ts.map +1 -1
  29. package/build/tools/list.d.ts +1 -9
  30. package/build/tools/list.d.ts.map +1 -1
  31. package/build/tools/list.js +2 -0
  32. package/build/tools/list.js.map +1 -1
  33. package/build/tools/logs.d.ts +1 -9
  34. package/build/tools/logs.d.ts.map +1 -1
  35. package/build/tools/predict.d.ts +7 -16
  36. package/build/tools/predict.d.ts.map +1 -1
  37. package/build/tools/predict.js +21 -2
  38. package/build/tools/predict.js.map +1 -1
  39. package/build/tools/prep-plan.d.ts +1 -13
  40. package/build/tools/prep-plan.d.ts.map +1 -1
  41. package/build/tools/prep.d.ts +1 -7
  42. package/build/tools/prep.d.ts.map +1 -1
  43. package/build/tools/project-overview.d.ts +1 -7
  44. package/build/tools/project-overview.d.ts.map +1 -1
  45. package/build/tools/promote.d.ts +12 -12
  46. package/build/tools/promote.d.ts.map +1 -1
  47. package/build/tools/promote.js +40 -11
  48. package/build/tools/promote.js.map +1 -1
  49. package/build/tools/quick-start.d.ts +6 -14
  50. package/build/tools/quick-start.d.ts.map +1 -1
  51. package/build/tools/sample.d.ts +5 -14
  52. package/build/tools/sample.d.ts.map +1 -1
  53. package/build/tools/serve.d.ts +1 -9
  54. package/build/tools/serve.d.ts.map +1 -1
  55. package/build/tools/status.d.ts +1 -5
  56. package/build/tools/status.d.ts.map +1 -1
  57. package/build/tools/train.d.ts +6 -26
  58. package/build/tools/train.d.ts.map +1 -1
  59. package/build/tools/trigger.d.ts +1 -7
  60. package/build/tools/trigger.d.ts.map +1 -1
  61. package/build/tools/validate.d.ts +1 -5
  62. package/build/tools/validate.d.ts.map +1 -1
  63. package/package.json +3 -3
@@ -8,22 +8,13 @@ export declare const predictSchema: z.ZodObject<{
8
8
  modelName: z.ZodOptional<z.ZodString>;
9
9
  output: z.ZodOptional<z.ZodString>;
10
10
  log: z.ZodOptional<z.ZodBoolean>;
11
- unknownStrategy: z.ZodOptional<z.ZodEnum<["auto", "error", "use-most-frequent", "use-missing"]>>;
12
- }, "strip", z.ZodTypeAny, {
13
- projectPath: string;
14
- dataFile?: string | undefined;
15
- modelName?: string | undefined;
16
- output?: string | undefined;
17
- log?: boolean | undefined;
18
- unknownStrategy?: "error" | "auto" | "use-most-frequent" | "use-missing" | undefined;
19
- }, {
20
- projectPath: string;
21
- dataFile?: string | undefined;
22
- modelName?: string | undefined;
23
- output?: string | undefined;
24
- log?: boolean | undefined;
25
- unknownStrategy?: "error" | "auto" | "use-most-frequent" | "use-missing" | undefined;
26
- }>;
11
+ unknownStrategy: z.ZodOptional<z.ZodEnum<{
12
+ error: "error";
13
+ auto: "auto";
14
+ "use-most-frequent": "use-most-frequent";
15
+ "use-missing": "use-missing";
16
+ }>>;
17
+ }, z.core.$strip>;
27
18
  export type PredictParams = z.infer<typeof predictSchema>;
28
19
  export declare function predict(params: PredictParams): Promise<{
29
20
  content: Array<{
@@ -1 +1 @@
1
- {"version":3,"file":"predict.d.ts","sourceRoot":"","sources":["../../src/tools/predict.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;EAQxB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,wBAAsB,OAAO,CAAC,MAAM,EAAE,aAAa,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,CAqCnI;AAED,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCvB,CAAC"}
1
+ {"version":3,"file":"predict.d.ts","sourceRoot":"","sources":["../../src/tools/predict.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,aAAa;;;;;;;;;;;;iBAQxB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,wBAAsB,OAAO,CAAC,MAAM,EAAE,aAAa,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,CAsDnI;AAED,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCvB,CAAC"}
@@ -30,15 +30,34 @@ export async function predict(params) {
30
30
  cliParams['log'] = true;
31
31
  if (unknownStrategy)
32
32
  cliParams['unknown-strategy'] = unknownStrategy;
33
+ // Structured propagation: without an explicit output file, request `--json` so the agent receives the
34
+ // full prediction rows (predictedLabel, probabilities, conformal band, and the normalized `confidence`
35
+ // MLoop now owns) instead of scraped Spectre text — this is what unblocked MCP structured consumption.
36
+ // An explicit `output` keeps the file-writing (CSV) path with its text summary.
37
+ const wantsFile = !!output;
38
+ if (!wantsFile)
39
+ cliParams['json'] = true;
33
40
  const args = buildArgsWithPositional('predict', positional, cliParams);
34
41
  const result = await executeMloop(args, {
35
42
  cwd: projectPath,
36
43
  });
37
- const outputText = parseCliOutput(result.stdout);
44
+ let outputText;
45
+ if (!wantsFile) {
46
+ // `--json` emits one JSON object on stdout. Fall back to text parsing for an older CLI without it.
47
+ try {
48
+ outputText = JSON.stringify(JSON.parse(result.stdout.trim()), null, 2);
49
+ }
50
+ catch {
51
+ outputText = parseCliOutput(result.stdout) || 'Prediction completed successfully.';
52
+ }
53
+ }
54
+ else {
55
+ outputText = parseCliOutput(result.stdout) || 'Prediction completed successfully.';
56
+ }
38
57
  return {
39
58
  content: [{
40
59
  type: 'text',
41
- text: outputText || 'Prediction completed successfully.',
60
+ text: outputText,
42
61
  }],
43
62
  };
44
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"predict.js","sourceRoot":"","sources":["../../src/tools/predict.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,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IACnE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;IAChG,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;IACvD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAC1D,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IACjE,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE;SACtF,QAAQ,CAAC,qEAAqE,CAAC;CACnF,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,MAAqB;IACjD,IAAI,CAAC;QACH,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;QAElF,oCAAoC;QACpC,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,IAAI,QAAQ;YAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAExC,MAAM,SAAS,GAA4B,EAAE,CAAC;QAC9C,IAAI,SAAS;YAAE,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;QAC7C,IAAI,MAAM;YAAE,SAAS,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;QACzC,IAAI,GAAG;YAAE,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QACjC,IAAI,eAAe;YAAE,SAAS,CAAC,kBAAkB,CAAC,GAAG,eAAe,CAAC;QAErE,MAAM,IAAI,GAAG,uBAAuB,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QAEvE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE;YACtC,GAAG,EAAE,WAAW;SACjB,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEjD,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,UAAU,IAAI,oCAAoC;iBACzD,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,WAAW,GAAG;IACzB,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,0EAA0E;IACvF,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iCAAiC;aAC/C;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iEAAiE;aAC/E;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kCAAkC;aAChD;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kCAAkC;aAChD;YACD,GAAG,EAAE;gBACH,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,wCAAwC;aACtD;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,aAAa,CAAC;gBAC3D,WAAW,EAAE,sNAAsN;aACpO;SACF;QACD,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;IACD,OAAO,EAAE,OAAO;CACjB,CAAC"}
1
+ {"version":3,"file":"predict.js","sourceRoot":"","sources":["../../src/tools/predict.ts"],"names":[],"mappings":"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"}
@@ -14,19 +14,7 @@ export declare const prepPlanSchema: z.ZodObject<{
14
14
  columns: z.ZodOptional<z.ZodString>;
15
15
  remove: z.ZodOptional<z.ZodString>;
16
16
  modelName: z.ZodOptional<z.ZodString>;
17
- }, "strip", z.ZodTypeAny, {
18
- projectPath: string;
19
- modelName?: string | undefined;
20
- set?: string | undefined;
21
- columns?: string | undefined;
22
- remove?: string | undefined;
23
- }, {
24
- projectPath: string;
25
- modelName?: string | undefined;
26
- set?: string | undefined;
27
- columns?: string | undefined;
28
- remove?: string | undefined;
29
- }>;
17
+ }, z.core.$strip>;
30
18
  export type PrepPlanParams = z.infer<typeof prepPlanSchema>;
31
19
  export declare function prepPlan(params: PrepPlanParams): Promise<{
32
20
  content: Array<{
@@ -1 +1 @@
1
- {"version":3,"file":"prep-plan.d.ts","sourceRoot":"","sources":["../../src/tools/prep-plan.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;EAYzB,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,cAAc,GACrB,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,CAyBhF;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCxB,CAAC"}
1
+ {"version":3,"file":"prep-plan.d.ts","sourceRoot":"","sources":["../../src/tools/prep-plan.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,cAAc;;;;;;iBAYzB,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,cAAc,GACrB,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,CAyBhF;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCxB,CAAC"}
@@ -5,13 +5,7 @@ import { z } from 'zod';
5
5
  export declare const prepSchema: z.ZodObject<{
6
6
  projectPath: z.ZodString;
7
7
  config: z.ZodOptional<z.ZodString>;
8
- }, "strip", z.ZodTypeAny, {
9
- projectPath: string;
10
- config?: string | undefined;
11
- }, {
12
- projectPath: string;
13
- config?: string | undefined;
14
- }>;
8
+ }, z.core.$strip>;
15
9
  export type PrepParams = z.infer<typeof prepSchema>;
16
10
  export declare function prep(params: PrepParams): Promise<{
17
11
  content: Array<{
@@ -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;;;;;;;;;EAGrB,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;;;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"}
@@ -5,13 +5,7 @@ import { z } from 'zod';
5
5
  export declare const projectOverviewSchema: z.ZodObject<{
6
6
  projectPath: z.ZodString;
7
7
  modelName: z.ZodOptional<z.ZodString>;
8
- }, "strip", z.ZodTypeAny, {
9
- projectPath: string;
10
- modelName?: string | undefined;
11
- }, {
12
- projectPath: string;
13
- modelName?: string | undefined;
14
- }>;
8
+ }, z.core.$strip>;
15
9
  export type ProjectOverviewParams = z.infer<typeof projectOverviewSchema>;
16
10
  export declare function projectOverview(params: ProjectOverviewParams): Promise<{
17
11
  content: Array<{
@@ -1 +1 @@
1
- {"version":3,"file":"project-overview.d.ts","sourceRoot":"","sources":["../../src/tools/project-overview.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,qBAAqB;;;;;;;;;EAGhC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE1E,wBAAsB,eAAe,CAAC,MAAM,EAAE,qBAAqB,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,CAiCnJ;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;CAkB/B,CAAC"}
1
+ {"version":3,"file":"project-overview.d.ts","sourceRoot":"","sources":["../../src/tools/project-overview.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,qBAAqB;;;iBAGhC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE1E,wBAAsB,eAAe,CAAC,MAAM,EAAE,qBAAqB,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,CAiCnJ;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;CAkB/B,CAAC"}
@@ -4,20 +4,12 @@
4
4
  import { z } from 'zod';
5
5
  export declare const promoteSchema: z.ZodObject<{
6
6
  projectPath: z.ZodString;
7
- experimentId: z.ZodString;
7
+ experimentId: z.ZodOptional<z.ZodString>;
8
+ latest: z.ZodOptional<z.ZodBoolean>;
9
+ best: z.ZodOptional<z.ZodBoolean>;
8
10
  modelName: z.ZodOptional<z.ZodString>;
9
11
  force: z.ZodOptional<z.ZodBoolean>;
10
- }, "strip", z.ZodTypeAny, {
11
- projectPath: string;
12
- experimentId: string;
13
- modelName?: string | undefined;
14
- force?: boolean | undefined;
15
- }, {
16
- projectPath: string;
17
- experimentId: string;
18
- modelName?: string | undefined;
19
- force?: boolean | undefined;
20
- }>;
12
+ }, z.core.$strip>;
21
13
  export type PromoteParams = z.infer<typeof promoteSchema>;
22
14
  export declare function promote(params: PromoteParams): Promise<{
23
15
  content: Array<{
@@ -40,6 +32,14 @@ export declare const promoteTool: {
40
32
  type: string;
41
33
  description: string;
42
34
  };
35
+ latest: {
36
+ type: string;
37
+ description: string;
38
+ };
39
+ best: {
40
+ type: string;
41
+ description: string;
42
+ };
43
43
  modelName: {
44
44
  type: string;
45
45
  description: string;
@@ -1 +1 @@
1
- {"version":3,"file":"promote.d.ts","sourceRoot":"","sources":["../../src/tools/promote.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;EAKxB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,wBAAsB,OAAO,CAAC,MAAM,EAAE,aAAa,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,CAiCnI;AAED,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BvB,CAAC"}
1
+ {"version":3,"file":"promote.d.ts","sourceRoot":"","sources":["../../src/tools/promote.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,aAAa;;;;;;;iBAOxB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,wBAAsB,OAAO,CAAC,MAAM,EAAE,aAAa,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,CAgDnI;AAED,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCvB,CAAC"}
@@ -7,20 +7,41 @@ import { parseCliOutput } from '../utils/parser.js';
7
7
  import { formatError } from '../utils/errors.js';
8
8
  export const promoteSchema = z.object({
9
9
  projectPath: z.string().describe('Path to MLoop project directory'),
10
- experimentId: z.string().describe('Experiment ID to promote (e.g., exp-003)'),
10
+ experimentId: z.string().optional().describe('Experiment ID to promote (e.g., exp-003); omit when using latest/best'),
11
+ latest: z.boolean().optional().describe('Promote the most recent completed experiment'),
12
+ best: z.boolean().optional().describe('Promote the completed experiment with the best metric (direction-aware)'),
11
13
  modelName: z.string().optional().describe('Model name'),
12
14
  force: z.boolean().optional().describe('Skip confirmation'),
13
15
  });
14
16
  export async function promote(params) {
15
17
  try {
16
- const { projectPath, experimentId, modelName, force } = params;
17
- const args = ['promote', experimentId];
18
- if (modelName) {
19
- args.push('--name', modelName);
18
+ const { projectPath, experimentId, latest, best, modelName, force } = params;
19
+ // Mirror the CLI's selector contract client-side so the agent gets an immediate, clear error.
20
+ const selectors = (experimentId ? 1 : 0) + (latest ? 1 : 0) + (best ? 1 : 0);
21
+ if (selectors !== 1) {
22
+ return {
23
+ content: [{
24
+ type: 'text',
25
+ text: selectors === 0
26
+ ? 'Specify exactly one of: experimentId, latest, or best.'
27
+ : 'Use only one of: experimentId, latest, best.',
28
+ }],
29
+ isError: true,
30
+ };
20
31
  }
21
- if (force) {
32
+ const args = ['promote'];
33
+ if (experimentId)
34
+ args.push(experimentId);
35
+ if (latest)
36
+ args.push('--latest');
37
+ if (best)
38
+ args.push('--best');
39
+ if (modelName)
40
+ args.push('--name', modelName);
41
+ if (force)
22
42
  args.push('--force');
23
- }
43
+ // Structured, non-interactive output (mloop >= 0.21): result object or {"error": ...}.
44
+ args.push('--json');
24
45
  const result = await executeMloop(args, {
25
46
  cwd: projectPath,
26
47
  });
@@ -28,7 +49,7 @@ export async function promote(params) {
28
49
  return {
29
50
  content: [{
30
51
  type: 'text',
31
- text: output || `Experiment ${experimentId} promoted to production successfully.`,
52
+ text: output || `Experiment ${experimentId ?? '(auto-selected)'} promoted to production successfully.`,
32
53
  }],
33
54
  };
34
55
  }
@@ -44,7 +65,7 @@ export async function promote(params) {
44
65
  }
45
66
  export const promoteTool = {
46
67
  name: 'mloop_promote',
47
- description: 'Promote an experiment to production. The experiment\'s model will be used for predictions.',
68
+ description: 'Promote an experiment to production. Select by explicit ID, or auto-select with latest (newest completed) / best (best metric, direction-aware). The promoted model will be used for predictions.',
48
69
  inputSchema: {
49
70
  type: 'object',
50
71
  properties: {
@@ -54,7 +75,15 @@ export const promoteTool = {
54
75
  },
55
76
  experimentId: {
56
77
  type: 'string',
57
- description: 'Experiment ID to promote (e.g., exp-003)',
78
+ description: 'Experiment ID to promote (e.g., exp-003); omit when using latest/best',
79
+ },
80
+ latest: {
81
+ type: 'boolean',
82
+ description: 'Promote the most recent completed experiment',
83
+ },
84
+ best: {
85
+ type: 'boolean',
86
+ description: 'Promote the completed experiment with the best metric (direction-aware: error metrics pick the minimum)',
58
87
  },
59
88
  modelName: {
60
89
  type: 'string',
@@ -65,7 +94,7 @@ export const promoteTool = {
65
94
  description: 'Skip confirmation prompt',
66
95
  },
67
96
  },
68
- required: ['projectPath', 'experimentId'],
97
+ required: ['projectPath'],
69
98
  },
70
99
  handler: promote,
71
100
  };
@@ -1 +1 @@
1
- {"version":3,"file":"promote.js","sourceRoot":"","sources":["../../src/tools/promote.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IACnE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IAC7E,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;IACvD,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;CAC5D,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,MAAqB;IACjD,IAAI,CAAC;QACH,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;QAE/D,MAAM,IAAI,GAAa,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QACjD,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE;YACtC,GAAG,EAAE,WAAW;SACjB,CAAC,CAAC;QAEH,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,cAAc,YAAY,uCAAuC;iBAClF,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,WAAW,GAAG;IACzB,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,4FAA4F;IACzG,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iCAAiC;aAC/C;YACD,YAAY,EAAE;gBACZ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,0CAA0C;aACxD;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,4BAA4B;aAC1C;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,0BAA0B;aACxC;SACF;QACD,QAAQ,EAAE,CAAC,aAAa,EAAE,cAAc,CAAC;KAC1C;IACD,OAAO,EAAE,OAAO;CACjB,CAAC"}
1
+ {"version":3,"file":"promote.js","sourceRoot":"","sources":["../../src/tools/promote.ts"],"names":[],"mappings":"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"}
@@ -6,21 +6,13 @@ export declare const quickStartSchema: z.ZodObject<{
6
6
  projectPath: z.ZodString;
7
7
  dataFile: z.ZodString;
8
8
  label: z.ZodString;
9
- task: z.ZodEnum<["binary-classification", "multiclass-classification", "regression"]>;
9
+ task: z.ZodEnum<{
10
+ "binary-classification": "binary-classification";
11
+ "multiclass-classification": "multiclass-classification";
12
+ regression: "regression";
13
+ }>;
10
14
  time: z.ZodOptional<z.ZodNumber>;
11
- }, "strip", z.ZodTypeAny, {
12
- projectPath: string;
13
- dataFile: string;
14
- label: string;
15
- task: "binary-classification" | "multiclass-classification" | "regression";
16
- time?: number | undefined;
17
- }, {
18
- projectPath: string;
19
- dataFile: string;
20
- label: string;
21
- task: "binary-classification" | "multiclass-classification" | "regression";
22
- time?: number | undefined;
23
- }>;
15
+ }, z.core.$strip>;
24
16
  export type QuickStartParams = z.infer<typeof quickStartSchema>;
25
17
  export declare function quickStart(params: QuickStartParams): Promise<{
26
18
  content: Array<{
@@ -1 +1 @@
1
- {"version":3,"file":"quick-start.d.ts","sourceRoot":"","sources":["../../src/tools/quick-start.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;EAQ3B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE,wBAAsB,UAAU,CAAC,MAAM,EAAE,gBAAgB,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,CAsDzI;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+B1B,CAAC"}
1
+ {"version":3,"file":"quick-start.d.ts","sourceRoot":"","sources":["../../src/tools/quick-start.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,gBAAgB;;;;;;;;;;iBAQ3B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE,wBAAsB,UAAU,CAAC,MAAM,EAAE,gBAAgB,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,CAsDzI;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+B1B,CAAC"}
@@ -4,23 +4,14 @@
4
4
  import { z } from 'zod';
5
5
  export declare const sampleSchema: z.ZodObject<{
6
6
  projectPath: z.ZodString;
7
- action: z.ZodEnum<["create", "stats"]>;
7
+ action: z.ZodEnum<{
8
+ create: "create";
9
+ stats: "stats";
10
+ }>;
8
11
  dataFile: z.ZodOptional<z.ZodString>;
9
12
  size: z.ZodOptional<z.ZodNumber>;
10
13
  strategy: z.ZodOptional<z.ZodString>;
11
- }, "strip", z.ZodTypeAny, {
12
- projectPath: string;
13
- action: "create" | "stats";
14
- dataFile?: string | undefined;
15
- size?: number | undefined;
16
- strategy?: string | undefined;
17
- }, {
18
- projectPath: string;
19
- action: "create" | "stats";
20
- dataFile?: string | undefined;
21
- size?: number | undefined;
22
- strategy?: string | undefined;
23
- }>;
14
+ }, z.core.$strip>;
24
15
  export type SampleParams = z.infer<typeof sampleSchema>;
25
16
  export declare function sample(params: SampleParams): Promise<{
26
17
  content: Array<{
@@ -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;;;;;;;;;;;;;;;;;;EAMvB,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;;;;;;;;;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"}
@@ -6,15 +6,7 @@ export declare const serveSchema: z.ZodObject<{
6
6
  projectPath: z.ZodString;
7
7
  port: z.ZodOptional<z.ZodNumber>;
8
8
  host: z.ZodOptional<z.ZodString>;
9
- }, "strip", z.ZodTypeAny, {
10
- projectPath: string;
11
- port?: number | undefined;
12
- host?: string | undefined;
13
- }, {
14
- projectPath: string;
15
- port?: number | undefined;
16
- host?: string | undefined;
17
- }>;
9
+ }, z.core.$strip>;
18
10
  export type ServeParams = z.infer<typeof serveSchema>;
19
11
  export declare function serve(params: ServeParams): Promise<{
20
12
  content: Array<{
@@ -1 +1 @@
1
- {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/tools/serve.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,WAAW;;;;;;;;;;;;EAItB,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;;;;;;;;;;;;;;;;;;;;;;CAsBrB,CAAC"}
1
+ {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/tools/serve.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,WAAW;;;;iBAItB,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;;;;;;;;;;;;;;;;;;;;;;CAsBrB,CAAC"}
@@ -4,11 +4,7 @@
4
4
  import { z } from 'zod';
5
5
  export declare const statusSchema: z.ZodObject<{
6
6
  projectPath: z.ZodString;
7
- }, "strip", z.ZodTypeAny, {
8
- projectPath: string;
9
- }, {
10
- projectPath: string;
11
- }>;
7
+ }, z.core.$strip>;
12
8
  export type StatusParams = z.infer<typeof statusSchema>;
13
9
  export declare function status(params: StatusParams): Promise<{
14
10
  content: Array<{
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/tools/status.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,YAAY;;;;;;EAEvB,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,CA2BjI;AAED,eAAO,MAAM,UAAU;;;;;;;;;;;;;;CActB,CAAC"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/tools/status.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,YAAY;;iBAEvB,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,CA2BjI;AAED,eAAO,MAAM,UAAU;;;;;;;;;;;;;;CActB,CAAC"}
@@ -6,7 +6,11 @@ export declare const trainSchema: z.ZodObject<{
6
6
  projectPath: z.ZodString;
7
7
  dataFile: z.ZodOptional<z.ZodString>;
8
8
  label: z.ZodOptional<z.ZodString>;
9
- task: z.ZodOptional<z.ZodEnum<["binary-classification", "multiclass-classification", "regression"]>>;
9
+ task: z.ZodOptional<z.ZodEnum<{
10
+ "binary-classification": "binary-classification";
11
+ "multiclass-classification": "multiclass-classification";
12
+ regression: "regression";
13
+ }>>;
10
14
  time: z.ZodOptional<z.ZodNumber>;
11
15
  metric: z.ZodOptional<z.ZodString>;
12
16
  modelName: z.ZodOptional<z.ZodString>;
@@ -14,31 +18,7 @@ export declare const trainSchema: z.ZodObject<{
14
18
  testSplit: z.ZodOptional<z.ZodNumber>;
15
19
  noPromote: z.ZodOptional<z.ZodBoolean>;
16
20
  dropMissingLabels: z.ZodOptional<z.ZodBoolean>;
17
- }, "strip", z.ZodTypeAny, {
18
- projectPath: string;
19
- dataFile?: string | undefined;
20
- label?: string | undefined;
21
- task?: "binary-classification" | "multiclass-classification" | "regression" | undefined;
22
- time?: number | undefined;
23
- metric?: string | undefined;
24
- modelName?: string | undefined;
25
- balance?: string | undefined;
26
- testSplit?: number | undefined;
27
- noPromote?: boolean | undefined;
28
- dropMissingLabels?: boolean | undefined;
29
- }, {
30
- projectPath: string;
31
- dataFile?: string | undefined;
32
- label?: string | undefined;
33
- task?: "binary-classification" | "multiclass-classification" | "regression" | undefined;
34
- time?: number | undefined;
35
- metric?: string | undefined;
36
- modelName?: string | undefined;
37
- balance?: string | undefined;
38
- testSplit?: number | undefined;
39
- noPromote?: boolean | undefined;
40
- dropMissingLabels?: boolean | undefined;
41
- }>;
21
+ }, z.core.$strip>;
42
22
  export type TrainParams = z.infer<typeof trainSchema>;
43
23
  export declare function train(params: TrainParams): Promise<{
44
24
  content: Array<{
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EActB,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,CA4C/H;AAED,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuDrB,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;;;;;;;;;;;;;;;;iBActB,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,CA4C/H;AAED,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuDrB,CAAC"}
@@ -5,13 +5,7 @@ import { z } from 'zod';
5
5
  export declare const triggerSchema: z.ZodObject<{
6
6
  projectPath: z.ZodString;
7
7
  modelName: z.ZodOptional<z.ZodString>;
8
- }, "strip", z.ZodTypeAny, {
9
- projectPath: string;
10
- modelName?: string | undefined;
11
- }, {
12
- projectPath: string;
13
- modelName?: string | undefined;
14
- }>;
8
+ }, z.core.$strip>;
15
9
  export type TriggerParams = z.infer<typeof triggerSchema>;
16
10
  export declare function trigger(params: TriggerParams): Promise<{
17
11
  content: Array<{
@@ -1 +1 @@
1
- {"version":3,"file":"trigger.d.ts","sourceRoot":"","sources":["../../src/tools/trigger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,aAAa;;;;;;;;;EAGxB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,wBAAsB,OAAO,CAAC,MAAM,EAAE,aAAa,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,CAwBnI;AAED,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;CAkBvB,CAAC"}
1
+ {"version":3,"file":"trigger.d.ts","sourceRoot":"","sources":["../../src/tools/trigger.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,aAAa;;;iBAGxB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,wBAAsB,OAAO,CAAC,MAAM,EAAE,aAAa,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,CAwBnI;AAED,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;CAkBvB,CAAC"}
@@ -4,11 +4,7 @@
4
4
  import { z } from 'zod';
5
5
  export declare const validateSchema: z.ZodObject<{
6
6
  projectPath: z.ZodString;
7
- }, "strip", z.ZodTypeAny, {
8
- projectPath: string;
9
- }, {
10
- projectPath: string;
11
- }>;
7
+ }, z.core.$strip>;
12
8
  export type ValidateParams = z.infer<typeof validateSchema>;
13
9
  export declare function validate(params: ValidateParams): Promise<{
14
10
  content: Array<{
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/tools/validate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,cAAc;;;;;;EAEzB,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,CAqBrI;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;CAcxB,CAAC"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/tools/validate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,cAAc;;iBAEzB,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,CAqBrI;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;CAcxB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@iyulab/mloop-mcp",
3
- "version": "0.4.0",
3
+ "version": "0.5.1",
4
4
  "description": "MCP server for MLoop CLI - ML.NET MLOps tool",
5
5
  "type": "module",
6
6
  "main": "build/index.js",
@@ -39,8 +39,8 @@
39
39
  "node": ">=18.0.0"
40
40
  },
41
41
  "dependencies": {
42
- "@modelcontextprotocol/sdk": "^1.0.0",
43
- "zod": "^3.25.0"
42
+ "@modelcontextprotocol/sdk": "^1.29.0",
43
+ "zod": "^4.4.3"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@types/node": "^22.0.0",