@iyulab/mloop-mcp 0.14.0 → 0.16.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/CHANGELOG.md +43 -0
- package/README.md +21 -3
- package/build/server.d.ts.map +1 -1
- package/build/server.js +4 -1
- package/build/server.js.map +1 -1
- package/build/tool-hints.d.ts.map +1 -1
- package/build/tool-hints.js +4 -1
- package/build/tool-hints.js.map +1 -1
- package/build/tools/analyze.d.ts +1 -0
- package/build/tools/analyze.d.ts.map +1 -1
- package/build/tools/analyze.js +7 -1
- package/build/tools/analyze.js.map +1 -1
- package/build/tools/auto-train.js +1 -1
- package/build/tools/auto-train.js.map +1 -1
- package/build/tools/calibrate.d.ts +1 -0
- package/build/tools/calibrate.d.ts.map +1 -1
- package/build/tools/calibrate.js +4 -1
- package/build/tools/calibrate.js.map +1 -1
- package/build/tools/compare.d.ts +4 -1
- package/build/tools/compare.d.ts.map +1 -1
- package/build/tools/compare.js +11 -2
- package/build/tools/compare.js.map +1 -1
- package/build/tools/detect.d.ts +1 -0
- package/build/tools/detect.d.ts.map +1 -1
- package/build/tools/detect.js +4 -1
- package/build/tools/detect.js.map +1 -1
- package/build/tools/docker.d.ts +23 -0
- package/build/tools/docker.d.ts.map +1 -0
- package/build/tools/docker.js +38 -0
- package/build/tools/docker.js.map +1 -0
- package/build/tools/embed.d.ts +1 -0
- package/build/tools/embed.d.ts.map +1 -1
- package/build/tools/embed.js +6 -3
- package/build/tools/embed.js.map +1 -1
- package/build/tools/encoder.d.ts +5 -1
- package/build/tools/encoder.d.ts.map +1 -1
- package/build/tools/encoder.js +18 -9
- package/build/tools/encoder.js.map +1 -1
- package/build/tools/evaluate.js +1 -1
- package/build/tools/evaluate.js.map +1 -1
- package/build/tools/explain.d.ts +29 -0
- package/build/tools/explain.d.ts.map +1 -0
- package/build/tools/explain.js +57 -0
- package/build/tools/explain.js.map +1 -0
- package/build/tools/feedback.d.ts +3 -0
- package/build/tools/feedback.d.ts.map +1 -1
- package/build/tools/feedback.js +7 -0
- package/build/tools/feedback.js.map +1 -1
- package/build/tools/index.d.ts +3 -0
- package/build/tools/index.d.ts.map +1 -1
- package/build/tools/index.js +3 -0
- package/build/tools/index.js.map +1 -1
- package/build/tools/info.d.ts +1 -0
- package/build/tools/info.d.ts.map +1 -1
- package/build/tools/info.js +5 -1
- package/build/tools/info.js.map +1 -1
- package/build/tools/init.d.ts +2 -0
- package/build/tools/init.d.ts.map +1 -1
- package/build/tools/init.js +8 -1
- package/build/tools/init.js.map +1 -1
- package/build/tools/list.d.ts +1 -0
- package/build/tools/list.d.ts.map +1 -1
- package/build/tools/list.js +4 -1
- package/build/tools/list.js.map +1 -1
- package/build/tools/logs.d.ts +2 -0
- package/build/tools/logs.d.ts.map +1 -1
- package/build/tools/logs.js +6 -0
- package/build/tools/logs.js.map +1 -1
- package/build/tools/predict.d.ts +2 -0
- package/build/tools/predict.d.ts.map +1 -1
- package/build/tools/predict.js +9 -2
- package/build/tools/predict.js.map +1 -1
- package/build/tools/prep-plan.d.ts +1 -0
- package/build/tools/prep-plan.d.ts.map +1 -1
- package/build/tools/prep-plan.js +4 -1
- package/build/tools/prep-plan.js.map +1 -1
- package/build/tools/prep.js +1 -1
- package/build/tools/prep.js.map +1 -1
- package/build/tools/promote.d.ts +1 -0
- package/build/tools/promote.d.ts.map +1 -1
- package/build/tools/promote.js +4 -1
- package/build/tools/promote.js.map +1 -1
- package/build/tools/runtime.d.ts +31 -0
- package/build/tools/runtime.d.ts.map +1 -0
- package/build/tools/runtime.js +42 -0
- package/build/tools/runtime.js.map +1 -0
- package/build/tools/sample.d.ts +2 -1
- package/build/tools/sample.d.ts.map +1 -1
- package/build/tools/sample.js +5 -3
- package/build/tools/sample.js.map +1 -1
- package/build/tools/status.d.ts +1 -0
- package/build/tools/status.d.ts.map +1 -1
- package/build/tools/status.js +4 -1
- package/build/tools/status.js.map +1 -1
- package/build/tools/threshold.d.ts +1 -0
- package/build/tools/threshold.d.ts.map +1 -1
- package/build/tools/threshold.js +4 -1
- package/build/tools/threshold.js.map +1 -1
- package/build/tools/train.d.ts +6 -0
- package/build/tools/train.d.ts.map +1 -1
- package/build/tools/train.js +21 -1
- package/build/tools/train.js.map +1 -1
- package/build/tools/trigger.d.ts +2 -0
- package/build/tools/trigger.d.ts.map +1 -1
- package/build/tools/trigger.js +6 -0
- package/build/tools/trigger.js.map +1 -1
- package/build/tools/validate.d.ts +1 -0
- package/build/tools/validate.d.ts.map +1 -1
- package/build/tools/validate.js +3 -0
- package/build/tools/validate.js.map +1 -1
- package/build/training-run.d.ts +7 -1
- package/build/training-run.d.ts.map +1 -1
- package/build/training-run.js +9 -1
- package/build/training-run.js.map +1 -1
- package/package.json +2 -3
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,49 @@ Releases before 0.11.3 are described by their commits. 0.12.0 includes the 0.11.
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.16.0] - 2026-11-09
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- `mloop_train` takes `ensemble`, passed as `mloop train --ensemble`: answer with a weighted blend of the trainer search's best trials when it scores better out of fold (binary classification and regression). A blend is one model file several times larger and a single-row request to a served model takes several times as long; `mloop_export_onnx` refuses it. Needs an `mloop` that has the flag.
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- The descriptions of the data-file arguments (`mloop_train`, `mloop_auto_train`, `mloop_evaluate`, `mloop_explain`, `mloop_predict`, `mloop_prep`) and the agent guide say where the default comes from when `dataFile` is left out: the `data.train`, `data.test` or `data.predict` the project's `mloop.yaml` declares, else `datasets/train.csv`, `datasets/test.csv` or `datasets/predict.csv`. An agent reading them no longer assumes the conventional file when the project names another one. No behaviour change.
|
|
18
|
+
|
|
19
|
+
## [0.15.0] - 2026-11-02
|
|
20
|
+
|
|
21
|
+
### Added
|
|
22
|
+
|
|
23
|
+
- `mloop_predict` takes `scoreThreshold`, passed as `mloop predict --score-threshold`: for an object-detection model, the confidence a box needs to be reported (default 0.5). A detector that finds objects without being 0.5 confident scores `map_50` 0 and shows nothing at the default; `0.3` (then lower) shows what it finds. Needs an `mloop` that has the flag; any other task refuses it.
|
|
24
|
+
- `mloop_train` takes `epochs`, passed as `mloop train --epochs`: how many epochs a deep-learning task (text classification, sentence similarity, NER,
|
|
25
|
+
question answering, object detection) trains for. `time` does not shorten such a fit, so the epoch count is its one dial on cost - try 2 first to see
|
|
26
|
+
what an epoch costs on the machine. Needs an `mloop` that has the flag; a task that does not count epochs refuses it.
|
|
27
|
+
- Options the CLI had and the tools could not pass now are fields: `records` (the dotted path to the rows of a JSON data file) on `mloop_info`,
|
|
28
|
+
`mloop_analyze`, `mloop_threshold`, `mloop_calibrate` and `mloop_detect`; `trials` on `mloop_list` (one experiment's trial leaderboard);
|
|
29
|
+
`from` / `to` on `mloop_logs` and `mloop_feedback` (`list`, `metrics`) and `limit` on `mloop_feedback` `list`; `accuracy` and `feedback`
|
|
30
|
+
thresholds on `mloop_trigger`; `best`, `metric` and `metricsFile` on `mloop_compare` (its `experiments` may now be left out, to compare the
|
|
31
|
+
model's completed experiments); `model` (a model file) on `mloop_predict`.
|
|
32
|
+
- `mloop_train` takes `analyzeData` (check the data quality and train nothing), `generateScript` (write a preprocessing script from that check), `autoMerge`
|
|
33
|
+
(merge the CSV files of one schema in `datasets/`) and `autoTime` (`true` sizes the time budget from the data even where `mloop.yaml` sets one, `false`
|
|
34
|
+
keeps the 300 s default). The answer of a data check carries `analysis` (the findings, each with a suggested fix; an empty list when there are none) and,
|
|
35
|
+
with `generateScript`, `script` (the path written) in place of `result`. The events come from an `mloop` newer than 0.48: older ones say nothing for
|
|
36
|
+
`--analyze-data --json`, and both fields are then null.
|
|
37
|
+
- `decideOnly` on `mloop_promote` (report what `latest`/`best` would promote and move nothing), `modelName` and `label` on `mloop_init`, `verbose` on
|
|
38
|
+
`mloop_status` and `mloop_validate`, `list` on `mloop_prep_plan`, and `textFile` on `mloop_embed` (a file of texts, one per line).
|
|
39
|
+
- `mloop_sample` takes `records` (the dotted path to the rows of a JSON data file) and says that `dataFile` may be a TSV, JSON, Excel or Parquet file - the sample is
|
|
40
|
+
written as CSV. Needs an `mloop` that reads those formats in `sample create --from`.
|
|
41
|
+
- Three tools for commands the CLI had and the server did not: `mloop_explain` (which input columns a model relies on — permutation importance on a labeled
|
|
42
|
+
file; needs an `mloop` newer than 0.48), `mloop_runtime` (list, install or remove the deep-learning runtimes `tf`, `torch`, `onnxruntime`) and
|
|
43
|
+
`mloop_docker` (write the Dockerfile and docker-compose.yml that serve a model). `mloop_encoder` also takes `add`: register an encoder of your own from its
|
|
44
|
+
definition file, ONNX graph and, for a text encoder, tokenizer.
|
|
45
|
+
|
|
46
|
+
### Fixed
|
|
47
|
+
|
|
48
|
+
- The package's `repository` field names this repository (`iyulab/mloop-mcp`). It pointed at the `MLoop` repository with a `mcp` directory, which that repository does
|
|
49
|
+
not have, so the npm page linked to a repository that does not hold this code (and a provenance statement made from this repository's
|
|
50
|
+
workflow would not have matched it).
|
|
51
|
+
|
|
9
52
|
## [0.14.0] - 2026-10-30
|
|
10
53
|
|
|
11
54
|
### Added
|
package/README.md
CHANGED
|
@@ -94,13 +94,31 @@ plugins:
|
|
|
94
94
|
| `mloop_serve` | Start the REST API server; returns once it answers `/health`, and leaves it running |
|
|
95
95
|
| `mloop_token` | Issue the bearer token the server requires on every endpoint but `/health` (`role: admin` for writes) |
|
|
96
96
|
| `mloop_embed` | Images or texts to vectors with a pretrained encoder, with the encoder's identity (texts: mloop >= 0.46) |
|
|
97
|
-
| `mloop_encoder` | List, install (catalog: `dinov2-small`, `multilingual-minilm`) or remove pretrained encoders |
|
|
97
|
+
| `mloop_encoder` | List, install (catalog: `dinov2-small`, `multilingual-minilm`), add your own (definition, ONNX graph, tokenizer) or remove pretrained encoders |
|
|
98
|
+
| `mloop_explain` | Which input columns a model relies on — permutation importance on a labeled file, in the metric `mloop_evaluate` reports (an `mloop` newer than 0.48) |
|
|
99
|
+
| `mloop_runtime` | List, install or remove the on-demand deep-learning runtimes (`tf`, `torch`, `onnxruntime`) |
|
|
100
|
+
| `mloop_docker` | Generate the Dockerfile and docker-compose.yml that serve a project's model |
|
|
101
|
+
| `mloop_init` | Initialize a new MLoop project (`mloop.yaml`, `datasets/`, `models/`) |
|
|
102
|
+
| `mloop_quick_start` | One step from zero to a production model: initialize, train, auto-promote |
|
|
103
|
+
| `mloop_auto_train` | Profile the data, train with an automatic time budget and list the experiments in one call |
|
|
104
|
+
| `mloop_project_overview` | Status, every experiment and the production model's metrics in one call |
|
|
105
|
+
| `mloop_validate` | Validate `mloop.yaml` (syntax, missing fields, invalid values) |
|
|
106
|
+
| `mloop_prep` | Run a model's declared preprocessing steps over a CSV file and write the prepared file |
|
|
107
|
+
| `mloop_logs` | View a model's prediction logs |
|
|
108
|
+
| `mloop_feedback` | Add the actual value for a logged prediction (source, optional weight), list feedback, or read its metrics |
|
|
109
|
+
| `mloop_sample` | Create a sampled dataset from a CSV file, or a retraining dataset from logged predictions and feedback |
|
|
110
|
+
| `mloop_trigger` | Check whether retraining is due, as JSON: one result per condition |
|
|
98
111
|
|
|
99
112
|
Every tool declares the MCP safety hints (`readOnlyHint`, `destructiveHint`, `idempotentHint`, `openWorldHint`) in `tools/list`, so a
|
|
100
113
|
client can apply an approval policy without reading tool names: the reading tools (`mloop_list`, `mloop_status`, `mloop_info`,
|
|
101
114
|
`mloop_analyze`, `mloop_compare`, `mloop_evaluate`, `mloop_validate`, `mloop_logs`, `mloop_trigger`, `mloop_drift`, `mloop_embed`,
|
|
102
|
-
`mloop_project_overview`, `mloop_token`) change nothing; the others write, and `destructiveHint: true` marks the ones that can overwrite a
|
|
103
|
-
file at a path you name or delete a setting, a threshold
|
|
115
|
+
`mloop_project_overview`, `mloop_token`, `mloop_explain`) change nothing; the others write, and `destructiveHint: true` marks the ones that can overwrite a
|
|
116
|
+
file at a path you name or delete a setting, a threshold, an installed encoder or runtime. The table is `src/tool-hints.ts`.
|
|
117
|
+
|
|
118
|
+
Two `mloop` options are left out on purpose, because each deletes data an agent cannot get back: `mloop logs prune` (drops the
|
|
119
|
+
prediction-log and feedback day-files older than the project's `retention.days`, which `mloop serve` already does once a day) and
|
|
120
|
+
`mloop promote --no-backup` (skips the backup `mloop_rollback` restores from). Run them from a shell, or set `retention:` in
|
|
121
|
+
`mloop.yaml`.
|
|
104
122
|
|
|
105
123
|
## Tool Examples
|
|
106
124
|
|
package/build/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAsB,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAsB,MAAM,8BAA8B,CAAC;AA2F7E;;GAEG;AACH,wBAAgB,YAAY,IAAI,SAAS,CAexC"}
|
package/build/server.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* MCP Server for MLoop CLI
|
|
3
3
|
*/
|
|
4
4
|
import { McpServer } from '@modelcontextprotocol/server';
|
|
5
|
-
import { trainTool, trainSchema, predictTool, predictSchema, listTool, listSchema, promoteTool, promoteSchema, rollbackTool, rollbackSchema, thresholdTool, thresholdSchema, calibrateTool, calibrateSchema, exportOnnxTool, exportOnnxSchema, infoTool, infoSchema, statusTool, statusSchema, compareTool, compareSchema, evaluateTool, evaluateSchema, serveTool, serveSchema, initTool, initSchema, validateTool, validateSchema, prepTool, prepSchema, logsTool, logsSchema, feedbackTool, feedbackSchema, sampleTool, sampleSchema, triggerTool, triggerSchema, driftTool, driftSchema, analyzeTool, analyzeSchema, detectTool, detectSchema, prepPlanTool, prepPlanSchema, featuresSelectTool, featuresSelectSchema, tokenTool, tokenSchema, embedTool, embedSchema, encoderTool, encoderSchema, quickStartTool, quickStartSchema, autoTrainTool, autoTrainSchema, projectOverviewTool, projectOverviewSchema, } from './tools/index.js';
|
|
5
|
+
import { trainTool, trainSchema, predictTool, predictSchema, listTool, listSchema, promoteTool, promoteSchema, rollbackTool, rollbackSchema, thresholdTool, thresholdSchema, calibrateTool, calibrateSchema, exportOnnxTool, exportOnnxSchema, infoTool, infoSchema, statusTool, statusSchema, compareTool, compareSchema, evaluateTool, evaluateSchema, serveTool, serveSchema, initTool, initSchema, validateTool, validateSchema, prepTool, prepSchema, logsTool, logsSchema, feedbackTool, feedbackSchema, sampleTool, sampleSchema, triggerTool, triggerSchema, driftTool, driftSchema, analyzeTool, analyzeSchema, detectTool, detectSchema, prepPlanTool, prepPlanSchema, featuresSelectTool, featuresSelectSchema, tokenTool, tokenSchema, embedTool, embedSchema, encoderTool, encoderSchema, explainTool, explainSchema, runtimeTool, runtimeSchema, dockerTool, dockerSchema, quickStartTool, quickStartSchema, autoTrainTool, autoTrainSchema, projectOverviewTool, projectOverviewSchema, } from './tools/index.js';
|
|
6
6
|
import { packageVersion } from './package-info.js';
|
|
7
7
|
import { withRequestSignal } from './executor.js';
|
|
8
8
|
import { hintsFor } from './tool-hints.js';
|
|
@@ -36,6 +36,9 @@ const tools = [
|
|
|
36
36
|
[tokenTool, tokenSchema],
|
|
37
37
|
[embedTool, embedSchema],
|
|
38
38
|
[encoderTool, encoderSchema],
|
|
39
|
+
[explainTool, explainSchema],
|
|
40
|
+
[runtimeTool, runtimeSchema],
|
|
41
|
+
[dockerTool, dockerSchema],
|
|
39
42
|
[quickStartTool, quickStartSchema],
|
|
40
43
|
[autoTrainTool, autoTrainSchema],
|
|
41
44
|
[projectOverviewTool, projectOverviewSchema],
|
package/build/server.js.map
CHANGED
|
@@ -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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-hints.d.ts","sourceRoot":"","sources":["../src/tool-hints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;CACxB;AAYD,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"tool-hints.d.ts","sourceRoot":"","sources":["../src/tool-hints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;CACxB;AAYD,eAAO,MAAM,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CA4C1D,CAAC;AAEF,0EAA0E;AAC1E,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAKhD"}
|
package/build/tool-hints.js
CHANGED
|
@@ -34,6 +34,7 @@ export const TOOL_HINTS = {
|
|
|
34
34
|
mloop_trigger: READS,
|
|
35
35
|
mloop_drift: READS,
|
|
36
36
|
mloop_embed: READS,
|
|
37
|
+
mloop_explain: READS,
|
|
37
38
|
mloop_project_overview: READS,
|
|
38
39
|
mloop_token: READS, // issues a signed token; nothing is stored
|
|
39
40
|
// Adds
|
|
@@ -56,8 +57,10 @@ export const TOOL_HINTS = {
|
|
|
56
57
|
mloop_features_select: WRITES_OVER,
|
|
57
58
|
mloop_sample: WRITES_OVER,
|
|
58
59
|
mloop_detect: WRITES_OVER, // writes only when `output` is given
|
|
59
|
-
//
|
|
60
|
+
mloop_docker: WRITES_OVER, // writes a Dockerfile and a compose file over the ones there
|
|
61
|
+
// Installs download weights or a runtime; remove deletes them
|
|
60
62
|
mloop_encoder: hints(false, true, true, true),
|
|
63
|
+
mloop_runtime: hints(false, true, true, true),
|
|
61
64
|
};
|
|
62
65
|
/** The hints of tool <paramref name="name"/>; throws when it has none. */
|
|
63
66
|
export function hintsFor(name) {
|
package/build/tool-hints.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-hints.js","sourceRoot":"","sources":["../src/tool-hints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AASH,MAAM,KAAK,GAAG,CAAC,YAAqB,EAAE,eAAwB,EAAE,cAAuB,EAAE,aAAa,GAAG,KAAK,EAAa,EAAE,CAC3H,CAAC,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,CAAC;AAErE,2DAA2D;AAC3D,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACvC,qHAAqH;AACrH,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7C,sFAAsF;AACtF,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAExC,MAAM,CAAC,MAAM,UAAU,GAAwC;IAC7D,QAAQ;IACR,UAAU,EAAE,KAAK;IACjB,YAAY,EAAE,KAAK;IACnB,UAAU,EAAE,KAAK;IACjB,aAAa,EAAE,KAAK;IACpB,aAAa,EAAE,KAAK;IACpB,cAAc,EAAE,KAAK;IACrB,cAAc,EAAE,KAAK;IACrB,UAAU,EAAE,KAAK;IACjB,aAAa,EAAE,KAAK;IACpB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,sBAAsB,EAAE,KAAK;IAC7B,WAAW,EAAE,KAAK,EAAE,2CAA2C;IAE/D,OAAO;IACP,WAAW,EAAE,IAAI,EAAS,iFAAiF;IAC3G,gBAAgB,EAAE,IAAI,EAAI,wBAAwB;IAClD,iBAAiB,EAAE,IAAI,EAAG,sCAAsC;IAChE,UAAU,EAAE,IAAI,EAAU,0BAA0B;IACpD,cAAc,EAAE,IAAI,EAAM,yBAAyB;IACnD,cAAc,EAAE,IAAI,EAAM,4DAA4D;IACtF,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,0EAA0E;IACpH,WAAW,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,iEAAiE;IAEhH,wEAAwE;IACxE,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC;IAExC,+FAA+F;IAC/F,eAAe,EAAE,WAAW;IAC5B,eAAe,EAAE,WAAW;IAC5B,iBAAiB,EAAE,WAAW;IAC9B,UAAU,EAAE,WAAW;IACvB,eAAe,EAAE,WAAW;IAC5B,qBAAqB,EAAE,WAAW;IAClC,YAAY,EAAE,WAAW;IACzB,YAAY,EAAE,WAAW,EAAE,qCAAqC;
|
|
1
|
+
{"version":3,"file":"tool-hints.js","sourceRoot":"","sources":["../src/tool-hints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AASH,MAAM,KAAK,GAAG,CAAC,YAAqB,EAAE,eAAwB,EAAE,cAAuB,EAAE,aAAa,GAAG,KAAK,EAAa,EAAE,CAC3H,CAAC,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC,CAAC;AAErE,2DAA2D;AAC3D,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACvC,qHAAqH;AACrH,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7C,sFAAsF;AACtF,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAExC,MAAM,CAAC,MAAM,UAAU,GAAwC;IAC7D,QAAQ;IACR,UAAU,EAAE,KAAK;IACjB,YAAY,EAAE,KAAK;IACnB,UAAU,EAAE,KAAK;IACjB,aAAa,EAAE,KAAK;IACpB,aAAa,EAAE,KAAK;IACpB,cAAc,EAAE,KAAK;IACrB,cAAc,EAAE,KAAK;IACrB,UAAU,EAAE,KAAK;IACjB,aAAa,EAAE,KAAK;IACpB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,aAAa,EAAE,KAAK;IACpB,sBAAsB,EAAE,KAAK;IAC7B,WAAW,EAAE,KAAK,EAAE,2CAA2C;IAE/D,OAAO;IACP,WAAW,EAAE,IAAI,EAAS,iFAAiF;IAC3G,gBAAgB,EAAE,IAAI,EAAI,wBAAwB;IAClD,iBAAiB,EAAE,IAAI,EAAG,sCAAsC;IAChE,UAAU,EAAE,IAAI,EAAU,0BAA0B;IACpD,cAAc,EAAE,IAAI,EAAM,yBAAyB;IACnD,cAAc,EAAE,IAAI,EAAM,4DAA4D;IACtF,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,0EAA0E;IACpH,WAAW,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,iEAAiE;IAEhH,wEAAwE;IACxE,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC;IAExC,+FAA+F;IAC/F,eAAe,EAAE,WAAW;IAC5B,eAAe,EAAE,WAAW;IAC5B,iBAAiB,EAAE,WAAW;IAC9B,UAAU,EAAE,WAAW;IACvB,eAAe,EAAE,WAAW;IAC5B,qBAAqB,EAAE,WAAW;IAClC,YAAY,EAAE,WAAW;IACzB,YAAY,EAAE,WAAW,EAAE,qCAAqC;IAChE,YAAY,EAAE,WAAW,EAAE,6DAA6D;IAExF,8DAA8D;IAC9D,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;IAC7C,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;CAC9C,CAAC;AAEF,0EAA0E;AAC1E,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,CAAC,KAAK;QACR,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,mEAAmE,CAAC,CAAC;IACpG,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/build/tools/analyze.d.ts
CHANGED
|
@@ -23,6 +23,7 @@ export declare const analyzeSchema: z.ZodObject<{
|
|
|
23
23
|
maxLag: z.ZodOptional<z.ZodNumber>;
|
|
24
24
|
aroundTrend: z.ZodOptional<z.ZodBoolean>;
|
|
25
25
|
modelName: z.ZodOptional<z.ZodString>;
|
|
26
|
+
records: z.ZodOptional<z.ZodString>;
|
|
26
27
|
}, z.core.$strip>;
|
|
27
28
|
export type AnalyzeParams = z.infer<typeof analyzeSchema>;
|
|
28
29
|
export declare function analyze(params: AnalyzeParams): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../src/tools/analyze.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../src/tools/analyze.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;iBA+CxB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,wBAAsB,OAAO,CAC3B,MAAM,EAAE,aAAa,GACpB,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,CA+ChF;AAED,eAAO,MAAM,WAAW;IACtB,IAAI;IACJ,WAAW;IAIX,OAAO;CACR,CAAC"}
|
package/build/tools/analyze.js
CHANGED
|
@@ -49,11 +49,17 @@ export const analyzeSchema = z.object({
|
|
|
49
49
|
.string()
|
|
50
50
|
.optional()
|
|
51
51
|
.describe('Model name to read label configuration from mloop.yaml (default: "default")'),
|
|
52
|
+
records: z
|
|
53
|
+
.string()
|
|
54
|
+
.optional()
|
|
55
|
+
.describe('For a JSON data file: the dotted path to the array whose items are the rows'),
|
|
52
56
|
});
|
|
53
57
|
export async function analyze(params) {
|
|
54
58
|
try {
|
|
55
|
-
const { aspect, dataFile, projectPath, label, modelName, column, maxLag, aroundTrend } = params;
|
|
59
|
+
const { aspect, dataFile, projectPath, label, modelName, column, maxLag, aroundTrend, records } = params;
|
|
56
60
|
const cliParams = {};
|
|
61
|
+
if (records)
|
|
62
|
+
cliParams['records'] = records;
|
|
57
63
|
if (aspect === 'series') {
|
|
58
64
|
// A series has no label and no model: its options are the column and the two test choices.
|
|
59
65
|
if (column)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/tools/analyze.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;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,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;SACpF,QAAQ,CACP,0FAA0F;QACxF,8DAA8D;QAC9D,+DAA+D;QAC/D,sDAAsD;QACtD,sDAAsD;QACtD,4GAA4G;QAC5G,4FAA4F,CAC/F;IACH,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,wFAAwF;QACtF,8FAA8F;QAC9F,iCAAiC,CACpC;IACH,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6EAA6E,CAAC;IAC1H,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,uFAAuF,CAAC;IACpG,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,gGAAgG,CAAC;IAC7G,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,QAAQ,CAAC,8FAA8F,CAAC;IAC3G,WAAW,EAAE,CAAC;SACX,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CAAC,qFAAqF,CAAC;IAClG,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,6EAA6E,CAAC;CAC3F,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,MAAqB;IAErB,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/tools/analyze.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import { runTraining } from '../training-run.js';
|
|
|
7
7
|
import { formatError } from '../utils/errors.js';
|
|
8
8
|
export const autoTrainSchema = z.object({
|
|
9
9
|
projectPath: z.string().describe('Project directory path'),
|
|
10
|
-
dataFile: z.string().optional().describe('Training data file (default: datasets/train.csv)'),
|
|
10
|
+
dataFile: z.string().optional().describe('Training data file (default: data.train in mloop.yaml, else datasets/train.csv)'),
|
|
11
11
|
label: z.string().optional().describe('Label column (uses mloop.yaml default if omitted)'),
|
|
12
12
|
modelName: z.string().optional().describe('Model name (default: "default")'),
|
|
13
13
|
time: z.number().positive().optional().describe('Training time (omit for auto-time)'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-train.js","sourceRoot":"","sources":["../../src/tools/auto-train.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAC1D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"auto-train.js","sourceRoot":"","sources":["../../src/tools/auto-train.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ export declare const calibrateSchema: z.ZodObject<{
|
|
|
14
14
|
}>>;
|
|
15
15
|
weight: z.ZodOptional<z.ZodString>;
|
|
16
16
|
clear: z.ZodOptional<z.ZodBoolean>;
|
|
17
|
+
records: z.ZodOptional<z.ZodString>;
|
|
17
18
|
}, z.core.$strip>;
|
|
18
19
|
export type CalibrateParams = z.infer<typeof calibrateSchema>;
|
|
19
20
|
export declare function calibrate(params: CalibrateParams): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calibrate.d.ts","sourceRoot":"","sources":["../../src/tools/calibrate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"calibrate.d.ts","sourceRoot":"","sources":["../../src/tools/calibrate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,eAAe;;;;;;;;;;;;;iBAS1B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,wBAAsB,SAAS,CAAC,MAAM,EAAE,eAAe,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,CAyBvI;AAED,eAAO,MAAM,aAAa;IACxB,IAAI;IACJ,WAAW;IACX,OAAO;CACR,CAAC"}
|
package/build/tools/calibrate.js
CHANGED
|
@@ -13,10 +13,11 @@ export const calibrateSchema = z.object({
|
|
|
13
13
|
method: z.enum(['platt', 'isotonic', 'temperature']).optional().describe('Binary: platt (default; steady on a few hundred rows) or isotonic (no shape assumed, needs more rows). Multiclass: temperature (default; answers unchanged)'),
|
|
14
14
|
weight: z.string().optional().describe('Column that weights the rows (1/π for a recheck sample)'),
|
|
15
15
|
clear: z.boolean().optional().describe('Remove the calibration: the model answers with its own probabilities again'),
|
|
16
|
+
records: z.string().optional().describe('For a JSON dataFile: the dotted path to the array whose items are the rows'),
|
|
16
17
|
});
|
|
17
18
|
export async function calibrate(params) {
|
|
18
19
|
try {
|
|
19
|
-
const { projectPath, experimentId, modelName, dataFile, method, weight, clear } = params;
|
|
20
|
+
const { projectPath, experimentId, modelName, dataFile, method, weight, clear, records } = params;
|
|
20
21
|
const args = ['calibrate'];
|
|
21
22
|
if (experimentId)
|
|
22
23
|
args.push(experimentId);
|
|
@@ -28,6 +29,8 @@ export async function calibrate(params) {
|
|
|
28
29
|
args.push('--method', method);
|
|
29
30
|
if (weight)
|
|
30
31
|
args.push('--weight', weight);
|
|
32
|
+
if (records)
|
|
33
|
+
args.push('--records', records);
|
|
31
34
|
if (clear)
|
|
32
35
|
args.push('--clear');
|
|
33
36
|
args.push('--json');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calibrate.js","sourceRoot":"","sources":["../../src/tools/calibrate.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,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IACnE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;IACvG,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;IACvD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4EAA4E,CAAC;IACtH,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6JAA6J,CAAC;IACvO,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;IACjG,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4EAA4E,CAAC;
|
|
1
|
+
{"version":3,"file":"calibrate.js","sourceRoot":"","sources":["../../src/tools/calibrate.ts"],"names":[],"mappings":"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"}
|
package/build/tools/compare.d.ts
CHANGED
|
@@ -4,8 +4,11 @@
|
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
export declare const compareSchema: z.ZodObject<{
|
|
6
6
|
projectPath: z.ZodString;
|
|
7
|
-
experiments: z.ZodArray<z.ZodString
|
|
7
|
+
experiments: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
8
8
|
modelName: z.ZodOptional<z.ZodString>;
|
|
9
|
+
best: z.ZodOptional<z.ZodNumber>;
|
|
10
|
+
metric: z.ZodOptional<z.ZodString>;
|
|
11
|
+
metricsFile: z.ZodOptional<z.ZodString>;
|
|
9
12
|
}, z.core.$strip>;
|
|
10
13
|
export type CompareParams = z.infer<typeof compareSchema>;
|
|
11
14
|
export declare function compare(params: CompareParams): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../src/tools/compare.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../src/tools/compare.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,CAiCnI;AAED,eAAO,MAAM,WAAW;IACtB,IAAI;IACJ,WAAW;IACX,OAAO;CACR,CAAC"}
|
package/build/tools/compare.js
CHANGED
|
@@ -7,16 +7,25 @@ import { parseCliOutput } from '../utils/parser.js';
|
|
|
7
7
|
import { formatError } from '../utils/errors.js';
|
|
8
8
|
export const compareSchema = z.object({
|
|
9
9
|
projectPath: z.string().describe('Path to MLoop project directory'),
|
|
10
|
-
experiments: z.array(z.string()).min(2).describe('Experiment IDs to compare (at least 2)'),
|
|
10
|
+
experiments: z.array(z.string()).min(2).optional().describe('Experiment IDs to compare (at least 2; leave out to compare the model\'s completed experiments)'),
|
|
11
11
|
modelName: z.string().optional().describe('Model name'),
|
|
12
|
+
best: z.number().int().positive().optional().describe('Compare only the top N experiments by metric (without experiments)'),
|
|
13
|
+
metric: z.string().optional().describe('Rank by this metric instead of the one the model was trained to optimize'),
|
|
14
|
+
metricsFile: z.string().optional().describe('Rank candidates from a JSON file of metrics, with no MLoop project needed (an external system of record\'s candidates): [{"id": ..., "metrics": {...}}, ...]'),
|
|
12
15
|
});
|
|
13
16
|
export async function compare(params) {
|
|
14
17
|
try {
|
|
15
|
-
const { projectPath, experiments, modelName } = params;
|
|
18
|
+
const { projectPath, experiments = [], modelName, best, metric, metricsFile } = params;
|
|
16
19
|
const args = ['compare', ...experiments, '--json'];
|
|
17
20
|
if (modelName) {
|
|
18
21
|
args.push('--name', modelName);
|
|
19
22
|
}
|
|
23
|
+
if (best !== undefined)
|
|
24
|
+
args.push('--best', String(best));
|
|
25
|
+
if (metric)
|
|
26
|
+
args.push('--metric', metric);
|
|
27
|
+
if (metricsFile)
|
|
28
|
+
args.push('--metrics-file', metricsFile);
|
|
20
29
|
const result = await executeMloop(args, {
|
|
21
30
|
cwd: projectPath,
|
|
22
31
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compare.js","sourceRoot":"","sources":["../../src/tools/compare.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,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"compare.js","sourceRoot":"","sources":["../../src/tools/compare.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,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iGAAiG,CAAC;IAC9J,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;IACvD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oEAAoE,CAAC;IAC3H,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0EAA0E,CAAC;IAClH,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8JAA8J,CAAC;CAC5M,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,MAAqB;IACjD,IAAI,CAAC;QACH,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;QAEvF,MAAM,IAAI,GAAa,CAAC,SAAS,EAAE,GAAG,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC7D,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1D,IAAI,MAAM;YAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC1C,IAAI,WAAW;YAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAE1D,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,+BAA+B;iBAChD,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,oFAAoF;IACjG,OAAO,EAAE,OAAO;CACjB,CAAC"}
|
package/build/tools/detect.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export declare const detectSchema: z.ZodObject<{
|
|
|
8
8
|
threshold: z.ZodOptional<z.ZodNumber>;
|
|
9
9
|
sensitivity: z.ZodOptional<z.ZodNumber>;
|
|
10
10
|
output: z.ZodOptional<z.ZodString>;
|
|
11
|
+
records: z.ZodOptional<z.ZodString>;
|
|
11
12
|
}, z.core.$strip>;
|
|
12
13
|
export type DetectParams = z.infer<typeof detectSchema>;
|
|
13
14
|
export declare function detect(params: DetectParams): Promise<{
|
|
@@ -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
|
|
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;IACrB,IAAI;IACJ,WAAW;IACX,OAAO;CACR,CAAC"}
|
package/build/tools/detect.js
CHANGED
|
@@ -12,11 +12,14 @@ export const detectSchema = z.object({
|
|
|
12
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
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)'),
|
|
14
14
|
output: z.string().optional().describe('Also write the full per-point result to this CSV file'),
|
|
15
|
+
records: z.string().optional().describe('For a JSON data file: the dotted path to the array whose items are the rows'),
|
|
15
16
|
});
|
|
16
17
|
export async function detect(params) {
|
|
17
18
|
try {
|
|
18
|
-
const { dataPath, column, threshold, sensitivity, output } = params;
|
|
19
|
+
const { dataPath, column, threshold, sensitivity, output, records } = params;
|
|
19
20
|
const cliParams = {};
|
|
21
|
+
if (records)
|
|
22
|
+
cliParams['records'] = records;
|
|
20
23
|
if (column)
|
|
21
24
|
cliParams['column'] = column;
|
|
22
25
|
if (threshold !== undefined)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/tools/detect.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;AACjD,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;IAChF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0EAA0E,CAAC;IAClH,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4HAA4H,CAAC;IAClL,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8FAA8F,CAAC;IACzJ,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;
|
|
1
|
+
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/tools/detect.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;AACjD,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;IAChF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0EAA0E,CAAC;IAClH,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4HAA4H,CAAC;IAClL,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8FAA8F,CAAC;IACzJ,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;IAC/F,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6EAA6E,CAAC;CACvH,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,MAAoB;IAC/C,IAAI,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;QAE7E,MAAM,SAAS,GAA4B,EAAE,CAAC;QAC9C,IAAI,OAAO;YAAE,SAAS,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;QAC5C,IAAI,MAAM;YAAE,SAAS,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;QACzC,IAAI,SAAS,KAAK,SAAS;YAAE,SAAS,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC;QAChE,IAAI,WAAW,KAAK,SAAS;YAAE,SAAS,CAAC,aAAa,CAAC,GAAG,WAAW,CAAC;QACtE,IAAI,MAAM;YAAE,SAAS,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;QACzC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QAEzB,MAAM,IAAI,GAAG,uBAAuB,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;QAEtE,4FAA4F;QAC5F,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE;YACtC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SAC1C,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,sBAAsB;iBAC3C,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,gcAAgc;IAC7c,OAAO,EAAE,MAAM;CAChB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mloop_docker tool - Generate the Docker configuration that serves a model
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
export declare const dockerSchema: z.ZodObject<{
|
|
6
|
+
projectPath: z.ZodString;
|
|
7
|
+
modelName: z.ZodOptional<z.ZodString>;
|
|
8
|
+
port: z.ZodOptional<z.ZodNumber>;
|
|
9
|
+
}, z.core.$strip>;
|
|
10
|
+
export type DockerParams = z.infer<typeof dockerSchema>;
|
|
11
|
+
export declare function docker(params: DockerParams): Promise<{
|
|
12
|
+
content: Array<{
|
|
13
|
+
type: 'text';
|
|
14
|
+
text: string;
|
|
15
|
+
}>;
|
|
16
|
+
isError?: boolean;
|
|
17
|
+
}>;
|
|
18
|
+
export declare const dockerTool: {
|
|
19
|
+
name: string;
|
|
20
|
+
description: string;
|
|
21
|
+
handler: typeof docker;
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=docker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../src/tools/docker.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,YAAY;;;;iBAIvB,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,CAmBjI;AAED,eAAO,MAAM,UAAU;IACrB,IAAI;IACJ,WAAW;IACX,OAAO;CACR,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mloop_docker tool - Generate the Docker configuration that serves a model
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { executeMloop } from '../executor.js';
|
|
6
|
+
import { parseCliOutput } from '../utils/parser.js';
|
|
7
|
+
import { formatError } from '../utils/errors.js';
|
|
8
|
+
export const dockerSchema = z.object({
|
|
9
|
+
projectPath: z.string().describe('Path to MLoop project directory (the files are written here)'),
|
|
10
|
+
modelName: z.string().optional().describe('Model to containerize (default: "default")'),
|
|
11
|
+
port: z.number().int().positive().max(65535).optional().describe('Port the API is exposed on (default 5000)'),
|
|
12
|
+
});
|
|
13
|
+
export async function docker(params) {
|
|
14
|
+
try {
|
|
15
|
+
const { projectPath, modelName, port } = params;
|
|
16
|
+
const args = ['docker'];
|
|
17
|
+
if (modelName)
|
|
18
|
+
args.push('--name', modelName);
|
|
19
|
+
if (port !== undefined)
|
|
20
|
+
args.push('--port', String(port));
|
|
21
|
+
const result = await executeMloop(args, { cwd: projectPath });
|
|
22
|
+
return {
|
|
23
|
+
content: [{ type: 'text', text: parseCliOutput(result.stdout) || 'Docker files generated.' }],
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
return {
|
|
28
|
+
content: [{ type: 'text', text: formatError(error) }],
|
|
29
|
+
isError: true,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
export const dockerTool = {
|
|
34
|
+
name: 'mloop_docker',
|
|
35
|
+
description: 'Generate the Docker configuration that serves a project\'s model with `mloop serve` (a Dockerfile and a docker-compose.yml, whose compose service mounts the project\'s models read-only and needs a JWT_SIGNING_KEY of 32+ characters to start) into the project directory. Files already there are overwritten. Answers the console text: this command has no JSON output.',
|
|
36
|
+
handler: docker,
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=docker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docker.js","sourceRoot":"","sources":["../../src/tools/docker.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,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;IAChG,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IACvF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;CAC9G,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,MAAoB;IAC/C,IAAI,CAAC;QACH,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QAEhD,MAAM,IAAI,GAAa,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC9C,IAAI,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAE1D,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;QAE9D,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,yBAAyB,EAAE,CAAC;SAC9F,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YACrD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,8WAA8W;IAC3X,OAAO,EAAE,MAAM;CAChB,CAAC"}
|
package/build/tools/embed.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export declare const embedSchema: z.ZodObject<{
|
|
|
8
8
|
texts: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
9
9
|
encoder: z.ZodOptional<z.ZodString>;
|
|
10
10
|
patches: z.ZodOptional<z.ZodBoolean>;
|
|
11
|
+
textFile: z.ZodOptional<z.ZodString>;
|
|
11
12
|
}, z.core.$strip>;
|
|
12
13
|
export type EmbedParams = z.infer<typeof embedSchema>;
|
|
13
14
|
export declare function embed(params: EmbedParams): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../../src/tools/embed.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../../src/tools/embed.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,WAAW;;;;;;;iBAOtB,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,CA4B/H;AAED,eAAO,MAAM,SAAS;IACpB,IAAI;IACJ,WAAW;IACX,OAAO;CACR,CAAC"}
|
package/build/tools/embed.js
CHANGED
|
@@ -11,12 +11,13 @@ export const embedSchema = z.object({
|
|
|
11
11
|
texts: z.array(z.string()).max(256).optional().describe('Texts to embed with a text encoder, at most 256 — instead of images'),
|
|
12
12
|
encoder: z.string().optional().describe('The encoder to use (mloop_encoder list); may be left out when only one of the kind is installed'),
|
|
13
13
|
patches: z.boolean().optional().describe('Also one vector per patch of each image, on the encoder\'s grid (images only, at most 8)'),
|
|
14
|
+
textFile: z.string().optional().describe('A UTF-8 file of texts to embed, one per line (at most 256 together with texts) — instead of images'),
|
|
14
15
|
});
|
|
15
16
|
export async function embed(params) {
|
|
16
|
-
const { projectPath, images = [], texts = [], encoder, patches } = params;
|
|
17
|
-
if ((images.length === 0) === (texts.length === 0)) {
|
|
17
|
+
const { projectPath, images = [], texts = [], textFile, encoder, patches } = params;
|
|
18
|
+
if ((images.length === 0) === (texts.length === 0 && !textFile)) {
|
|
18
19
|
return {
|
|
19
|
-
content: [{ type: 'text', text: 'Give either images or texts to embed (one of the two, not both).' }],
|
|
20
|
+
content: [{ type: 'text', text: 'Give either images or texts (texts or textFile) to embed (one of the two, not both).' }],
|
|
20
21
|
isError: true,
|
|
21
22
|
};
|
|
22
23
|
}
|
|
@@ -24,6 +25,8 @@ export async function embed(params) {
|
|
|
24
25
|
const args = ['embed', ...images];
|
|
25
26
|
for (const text of texts)
|
|
26
27
|
args.push('--text', text);
|
|
28
|
+
if (textFile)
|
|
29
|
+
args.push('--text-file', textFile);
|
|
27
30
|
if (encoder)
|
|
28
31
|
args.push('--encoder', encoder);
|
|
29
32
|
if (patches)
|
package/build/tools/embed.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embed.js","sourceRoot":"","sources":["../../src/tools/embed.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,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gFAAgF,CAAC;IAClH,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;IAC1G,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;IAC9H,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iGAAiG,CAAC;IAC1I,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0FAA0F,CAAC;
|
|
1
|
+
{"version":3,"file":"embed.js","sourceRoot":"","sources":["../../src/tools/embed.ts"],"names":[],"mappings":"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"}
|
package/build/tools/encoder.d.ts
CHANGED
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* mloop_encoder tool - List, install or remove pretrained encoders
|
|
2
|
+
* mloop_encoder tool - List, install, add or remove pretrained encoders
|
|
3
3
|
*/
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
export declare const encoderSchema: z.ZodObject<{
|
|
6
6
|
projectPath: z.ZodString;
|
|
7
7
|
action: z.ZodEnum<{
|
|
8
|
+
add: "add";
|
|
8
9
|
install: "install";
|
|
9
10
|
list: "list";
|
|
10
11
|
remove: "remove";
|
|
11
12
|
}>;
|
|
12
13
|
encoder: z.ZodOptional<z.ZodString>;
|
|
14
|
+
definition: z.ZodOptional<z.ZodString>;
|
|
15
|
+
model: z.ZodOptional<z.ZodString>;
|
|
16
|
+
tokenizer: z.ZodOptional<z.ZodString>;
|
|
13
17
|
}, z.core.$strip>;
|
|
14
18
|
export type EncoderParams = z.infer<typeof encoderSchema>;
|
|
15
19
|
export declare function encoder(params: EncoderParams): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../src/tools/encoder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../src/tools/encoder.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,CA8BnI;AAED,eAAO,MAAM,WAAW;IACtB,IAAI;IACJ,WAAW;IACX,OAAO;CACR,CAAC"}
|