mas-lab-library-lab 0.2.0__tar.gz
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.
- mas_lab_library_lab-0.2.0/.gitignore +86 -0
- mas_lab_library_lab-0.2.0/PKG-INFO +27 -0
- mas_lab_library_lab-0.2.0/README.md +16 -0
- mas_lab_library_lab-0.2.0/docs/developer-guide.md +33 -0
- mas_lab_library_lab-0.2.0/docs/user-guide.md +34 -0
- mas_lab_library_lab-0.2.0/library.yaml +284 -0
- mas_lab_library_lab-0.2.0/pyproject.toml +33 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/__init__.py +23 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/artifact_types.py +73 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/codecs/__init__.py +0 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/codecs/otel_codecs.py +456 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/eval/__init__.py +7 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/eval/mcev1.py +35 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/plots.py +408 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/plugins/design_patterns/__init__.py +16 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/plugins/design_patterns/staged_debate.py +63 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/plugins/design_patterns/supervised.py +61 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/plugins/design_patterns/verifier.py +94 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/plugins/design_patterns/voting.py +29 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/README.md +36 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/__init__.py +99 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/_io.py +100 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/data/analysis.py +130 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/data/collect_dataframe.py +203 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/data/dataset.py +67 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/data/deserialize.py +138 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/data/diff_trajectories.py +119 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/data/embed_trajectories.py +221 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/data/experiment.py +114 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/data/gather_level.py +120 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/data/generate_dataset.py +297 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/data/join_dataframe.py +145 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/data/processor.py +195 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/data/serialize.py +326 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/data/to_dataframe.py +196 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/eval/annotate_metrics.py +208 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/eval/collect_metrics.py +467 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/eval/compute_ci.py +487 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/eval/compute_drift.py +168 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/eval/mce.py +502 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/eval/metrics_files.py +86 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/eval/metrics_to_dataframe.py +109 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/eval/validate_outputs.py +53 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/extract/mealy_stats.py +387 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/extract/sys_stats.py +234 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/extract/trace_stats.py +445 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/extract/trajectories.py +309 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/services/events_to_otel.py +261 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/services/export_otel.py +196 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/services/file_tail.py +253 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/services/metric_event.py +67 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/services/plot_stream.py +131 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/services/service_start.py +168 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/services/service_stop.py +77 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/services/shell.py +56 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/viz/ci_plot.py +381 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/viz/metrics_comparison_plot.py +161 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/viz/pipeline_diagram.py +564 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/viz/plot.py +114 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/viz/plot_communication_flow.py +86 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/viz/plot_ggplot.py +189 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/viz/plot_message_graph.py +98 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/viz/plot_multilevel_trajectory.py +211 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/viz/plot_trajectory.py +94 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/viz/plotnine.py +527 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/ui/__init__.py +3 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/ui/assets/series.js +404 -0
- mas_lab_library_lab-0.2.0/src/mas/library/lab/ui/series.py +134 -0
- mas_lab_library_lab-0.2.0/tests/test_file_tail.py +157 -0
- mas_lab_library_lab-0.2.0/tests/test_mce_version.py +7 -0
- mas_lab_library_lab-0.2.0/tests/test_metric_event.py +30 -0
- mas_lab_library_lab-0.2.0/tests/test_plot_stream.py +94 -0
- mas_lab_library_lab-0.2.0/tests/test_shell_step.py +20 -0
- mas_lab_library_lab-0.2.0/tests/test_trace_stats.py +31 -0
- mas_lab_library_lab-0.2.0/tests/test_ui_series.py +69 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
*.pyc
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.egg-info/
|
|
4
|
+
.DS_Store
|
|
5
|
+
dist/
|
|
6
|
+
build/
|
|
7
|
+
.venv/
|
|
8
|
+
.demo-ui/
|
|
9
|
+
.demo-ui-mock/
|
|
10
|
+
.env
|
|
11
|
+
.env.local
|
|
12
|
+
.env.*.local
|
|
13
|
+
config.yaml
|
|
14
|
+
!lab/src/mas/lab/templates/**/config.yaml
|
|
15
|
+
!docs/tutorials/**/config.yaml
|
|
16
|
+
!labs/**/config.yaml
|
|
17
|
+
!library-samples/sample-workspace/config.yaml
|
|
18
|
+
.mypy_cache/
|
|
19
|
+
.ruff_cache/
|
|
20
|
+
.pytest_cache/
|
|
21
|
+
.test-venv/
|
|
22
|
+
node_modules/
|
|
23
|
+
*.log
|
|
24
|
+
docs/tutorials/**/logs/
|
|
25
|
+
.hypothesis/
|
|
26
|
+
compliance-report.json
|
|
27
|
+
COMPLIANCE_REPORT.md
|
|
28
|
+
compliance/results/
|
|
29
|
+
|
|
30
|
+
# MkDocs build output
|
|
31
|
+
site/
|
|
32
|
+
|
|
33
|
+
.vscode/
|
|
34
|
+
.cursor/
|
|
35
|
+
.claude/
|
|
36
|
+
|
|
37
|
+
# Test / coverage artifacts
|
|
38
|
+
.coverage
|
|
39
|
+
coverage.xml
|
|
40
|
+
coverage.json
|
|
41
|
+
**/coverage.json
|
|
42
|
+
|
|
43
|
+
# LaTeX build artifacts
|
|
44
|
+
*.fdb_latexmk
|
|
45
|
+
*.fls
|
|
46
|
+
*.aux
|
|
47
|
+
*.out
|
|
48
|
+
*.toc
|
|
49
|
+
*.synctex.gz
|
|
50
|
+
|
|
51
|
+
# Run output / artifacts
|
|
52
|
+
**/output/*.jsonl
|
|
53
|
+
**/output/benchmark
|
|
54
|
+
**/output/meta.json
|
|
55
|
+
**/output/current_run_id.txt
|
|
56
|
+
**/output/*/
|
|
57
|
+
.tutorial-cache/
|
|
58
|
+
tests/.tutorial-engine-cache/
|
|
59
|
+
.demo-cache/
|
|
60
|
+
# Local mas-ctl chat traces next to an agent (fixtures live under fixtures/ or T01 traces/)
|
|
61
|
+
docs/tutorials/**/agents/**/traces/
|
|
62
|
+
|
|
63
|
+
# Backup files
|
|
64
|
+
*.bak
|
|
65
|
+
*.bak2
|
|
66
|
+
|
|
67
|
+
# Legacy dead code (removed from repo)
|
|
68
|
+
lab/src/mas/lab/_cli_legacy.py
|
|
69
|
+
.deepeval/
|
|
70
|
+
~/.mas/
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
# Docker local secrets + data (never commit)
|
|
74
|
+
docker/.env
|
|
75
|
+
docker/data/*
|
|
76
|
+
!docker/data/.gitkeep
|
|
77
|
+
|
|
78
|
+
# Local protocol compliance checkouts and reports
|
|
79
|
+
compliance/vendor/
|
|
80
|
+
|
|
81
|
+
# Local harness playbooks (not published)
|
|
82
|
+
AGENTS.md
|
|
83
|
+
# .agents/
|
|
84
|
+
COVERAGE_REPORT.md
|
|
85
|
+
MANIFEST_SCHEMA_MAPPING.md
|
|
86
|
+
.lycheecache
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: mas-lab-library-lab
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Summary: MAS Lab provider library with public eval plugins.
|
|
5
|
+
Author: MAS Framework Contributors
|
|
6
|
+
License: Apache-2.0
|
|
7
|
+
Requires-Python: >=3.11
|
|
8
|
+
Requires-Dist: mas-lab-component-bench
|
|
9
|
+
Requires-Dist: mas-lab-component-core
|
|
10
|
+
Description-Content-Type: text/markdown
|
|
11
|
+
|
|
12
|
+
<!--
|
|
13
|
+
Copyright (c) 2026 Cisco Systems, Inc. and its affiliates
|
|
14
|
+
SPDX-License-Identifier: Apache-2.0
|
|
15
|
+
-->
|
|
16
|
+
# library-lab
|
|
17
|
+
|
|
18
|
+
Public plugin library for MAS Lab extensions.
|
|
19
|
+
|
|
20
|
+
## Registered eval providers
|
|
21
|
+
|
|
22
|
+
- `mcev1` -> `mas.library.lab.eval.mcev1:MCEv1Provider`
|
|
23
|
+
|
|
24
|
+
## Documentation
|
|
25
|
+
|
|
26
|
+
- User guide: `docs/user-guide.md`
|
|
27
|
+
- Developer guide: `docs/developer-guide.md`
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Copyright (c) 2026 Cisco Systems, Inc. and its affiliates
|
|
3
|
+
SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
-->
|
|
5
|
+
# library-lab
|
|
6
|
+
|
|
7
|
+
Public plugin library for MAS Lab extensions.
|
|
8
|
+
|
|
9
|
+
## Registered eval providers
|
|
10
|
+
|
|
11
|
+
- `mcev1` -> `mas.library.lab.eval.mcev1:MCEv1Provider`
|
|
12
|
+
|
|
13
|
+
## Documentation
|
|
14
|
+
|
|
15
|
+
- User guide: `docs/user-guide.md`
|
|
16
|
+
- Developer guide: `docs/developer-guide.md`
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Copyright (c) 2026 Cisco Systems, Inc. and its affiliates
|
|
3
|
+
SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
-->
|
|
5
|
+
# library-lab Developer Guide
|
|
6
|
+
|
|
7
|
+
This guide covers extending public lab-oriented providers and utilities.
|
|
8
|
+
|
|
9
|
+
## Package layout
|
|
10
|
+
|
|
11
|
+
- `src/mas/library/lab/eval/`: eval providers
|
|
12
|
+
- `src/mas/library/lab/plots.py`: plotting helpers
|
|
13
|
+
- `src/mas/library/lab/__init__.py`: public exports
|
|
14
|
+
|
|
15
|
+
## Extend eval providers
|
|
16
|
+
|
|
17
|
+
1. Add provider module under `eval/`.
|
|
18
|
+
2. Expose stable registration identifier.
|
|
19
|
+
3. Keep metric output schema explicit and documented.
|
|
20
|
+
4. Add tests validating provider registration and score shape.
|
|
21
|
+
|
|
22
|
+
## Extend plotting utilities
|
|
23
|
+
|
|
24
|
+
- Keep plotting helpers pure and reusable.
|
|
25
|
+
- Avoid side effects that break notebook or headless usage.
|
|
26
|
+
- Document required dataframe columns and expected types.
|
|
27
|
+
|
|
28
|
+
## Release checklist
|
|
29
|
+
|
|
30
|
+
- Public exports updated
|
|
31
|
+
- Provider IDs documented
|
|
32
|
+
- Backward compatibility impact reviewed
|
|
33
|
+
- Examples updated to include new provider usage
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Copyright (c) 2026 Cisco Systems, Inc. and its affiliates
|
|
3
|
+
SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
-->
|
|
5
|
+
# library-lab User Guide
|
|
6
|
+
|
|
7
|
+
`library-lab` ships public extensions for `mas-lab`, including eval providers and plotting helpers.
|
|
8
|
+
|
|
9
|
+
## Install
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
uv pip install -e library-lab
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## What is included
|
|
16
|
+
|
|
17
|
+
- Public eval provider registration (`mcev1`)
|
|
18
|
+
- Plot helper exports such as `execution_chain_graph`
|
|
19
|
+
|
|
20
|
+
## Typical usage
|
|
21
|
+
|
|
22
|
+
- Use this package when your experiments depend on public eval plugins.
|
|
23
|
+
- Keep experiment config aligned with provider names exported by this package.
|
|
24
|
+
|
|
25
|
+
## Quick verification
|
|
26
|
+
|
|
27
|
+
1. Install package in editable mode.
|
|
28
|
+
2. Run a benchmark referencing the provider.
|
|
29
|
+
3. Confirm provider-specific metrics are present in artifacts.
|
|
30
|
+
|
|
31
|
+
## Troubleshooting
|
|
32
|
+
|
|
33
|
+
- Provider not detected: verify package is installed in active env.
|
|
34
|
+
- Missing metric output: check provider identifier and experiment pipeline step config.
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
# Copyright (c) 2026 Cisco Systems, Inc. and its affiliates
|
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
# MAS Library Metadata — Lab
|
|
4
|
+
# Pipeline steps, artifact types, and artifact codecs used by the
|
|
5
|
+
# lab/components/bench pipeline engine. Bench ships the engine only (Pipeline,
|
|
6
|
+
# PipelineExecutor, PipelineStep, caching, dependency resolution); every
|
|
7
|
+
# concrete step, artifact type, and codec implementation lives here and
|
|
8
|
+
# is registered through the runtime plugin registry — see
|
|
9
|
+
# runtime/docs/plugin-registry-manifests.md.
|
|
10
|
+
#
|
|
11
|
+
# This file is both the library manifest (kind: Library — metadata read by
|
|
12
|
+
# mas.library_catalog: discover_apps/discover_datasets/discover_tools) and,
|
|
13
|
+
# via the types:/plugins: keys below, a plugin manifest fed directly into
|
|
14
|
+
# mas.runtime.registry.bootstrap.register_manifest_data(). A library only
|
|
15
|
+
# needs a separate plugins/*.plugins.yaml file (referenced from a
|
|
16
|
+
# plugin_manifests: catalog here, or picked up by the plugins/ directory
|
|
17
|
+
# scan) if it wants to split its plugin declarations across multiple files.
|
|
18
|
+
# See docs/schemas/library.schema.yaml for the full schema.
|
|
19
|
+
|
|
20
|
+
apiVersion: mas/v1
|
|
21
|
+
kind: Library
|
|
22
|
+
|
|
23
|
+
name: lab
|
|
24
|
+
description: >
|
|
25
|
+
Pipeline step and artifact codec plugins for lab/components/bench, plus the
|
|
26
|
+
MCE v1 eval provider and the standard plot library.
|
|
27
|
+
version: "0.1.0"
|
|
28
|
+
|
|
29
|
+
module_base: mas.library.lab
|
|
30
|
+
|
|
31
|
+
types:
|
|
32
|
+
- step
|
|
33
|
+
- codec
|
|
34
|
+
- design_pattern
|
|
35
|
+
- artifact
|
|
36
|
+
|
|
37
|
+
plugins:
|
|
38
|
+
- type: step
|
|
39
|
+
name: analysis
|
|
40
|
+
module: mas.library.lab.steps.data.analysis
|
|
41
|
+
class: AnalysisStep
|
|
42
|
+
- type: step
|
|
43
|
+
name: annotate_metrics
|
|
44
|
+
module: mas.library.lab.steps.eval.annotate_metrics
|
|
45
|
+
class: AnnotateMetricsStep
|
|
46
|
+
- type: step
|
|
47
|
+
name: ci_plot
|
|
48
|
+
module: mas.library.lab.steps.viz.ci_plot
|
|
49
|
+
class: CIPlotStep
|
|
50
|
+
- type: step
|
|
51
|
+
name: collect_dataframe
|
|
52
|
+
module: mas.library.lab.steps.data.collect_dataframe
|
|
53
|
+
class: CollectDataFrameStep
|
|
54
|
+
- type: step
|
|
55
|
+
name: collect_metrics
|
|
56
|
+
module: mas.library.lab.steps.eval.collect_metrics
|
|
57
|
+
class: CollectMetricsStep
|
|
58
|
+
- type: step
|
|
59
|
+
name: compute_ci
|
|
60
|
+
module: mas.library.lab.steps.eval.compute_ci
|
|
61
|
+
class: ComputeCIStep
|
|
62
|
+
- type: step
|
|
63
|
+
name: compute_drift
|
|
64
|
+
module: mas.library.lab.steps.eval.compute_drift
|
|
65
|
+
class: ComputeDriftStep
|
|
66
|
+
- type: step
|
|
67
|
+
name: dataset
|
|
68
|
+
module: mas.library.lab.steps.data.dataset
|
|
69
|
+
class: DatasetStep
|
|
70
|
+
- type: step
|
|
71
|
+
name: deserialize
|
|
72
|
+
module: mas.library.lab.steps.data.deserialize
|
|
73
|
+
class: DeserializeStep
|
|
74
|
+
- type: step
|
|
75
|
+
name: diff_trajectories
|
|
76
|
+
module: mas.library.lab.steps.data.diff_trajectories
|
|
77
|
+
class: DiffTrajectoriesStep
|
|
78
|
+
- type: step
|
|
79
|
+
name: embed_trajectories
|
|
80
|
+
module: mas.library.lab.steps.data.embed_trajectories
|
|
81
|
+
class: EmbedStep
|
|
82
|
+
- type: step
|
|
83
|
+
name: eval_mce
|
|
84
|
+
module: mas.library.lab.steps.eval.mce
|
|
85
|
+
class: EvalMceStep
|
|
86
|
+
- type: step
|
|
87
|
+
name: events_to_otel
|
|
88
|
+
module: mas.library.lab.steps.services.events_to_otel
|
|
89
|
+
class: EventsToOtelStep
|
|
90
|
+
- type: step
|
|
91
|
+
name: experiment
|
|
92
|
+
module: mas.library.lab.steps.data.experiment
|
|
93
|
+
class: ExperimentStep
|
|
94
|
+
- type: step
|
|
95
|
+
name: export_otel
|
|
96
|
+
module: mas.library.lab.steps.services.export_otel
|
|
97
|
+
class: ExportOtelStep
|
|
98
|
+
- type: step
|
|
99
|
+
name: extract_mealy_stats
|
|
100
|
+
module: mas.library.lab.steps.extract.mealy_stats
|
|
101
|
+
class: ExtractMealyStatsStep
|
|
102
|
+
- type: step
|
|
103
|
+
name: extract_sys_stats
|
|
104
|
+
module: mas.library.lab.steps.extract.sys_stats
|
|
105
|
+
class: ExtractSysStatsStep
|
|
106
|
+
- type: step
|
|
107
|
+
name: extract_trace_stats
|
|
108
|
+
module: mas.library.lab.steps.extract.trace_stats
|
|
109
|
+
class: ExtractTraceStatsStep
|
|
110
|
+
- type: step
|
|
111
|
+
name: file_tail
|
|
112
|
+
module: mas.library.lab.steps.services.file_tail
|
|
113
|
+
class: FileTailStep
|
|
114
|
+
- type: step
|
|
115
|
+
name: shell
|
|
116
|
+
module: mas.library.lab.steps.services.shell
|
|
117
|
+
class: ShellStep
|
|
118
|
+
- type: step
|
|
119
|
+
name: extract_trajectories
|
|
120
|
+
module: mas.library.lab.steps.extract.trajectories
|
|
121
|
+
class: ExtractTrajectoriesStep
|
|
122
|
+
- type: step
|
|
123
|
+
name: gather_level
|
|
124
|
+
module: mas.library.lab.steps.data.gather_level
|
|
125
|
+
class: GatherLevelStep
|
|
126
|
+
- type: step
|
|
127
|
+
name: generate_dataset
|
|
128
|
+
module: mas.library.lab.steps.data.generate_dataset
|
|
129
|
+
class: GenerateDatasetStep
|
|
130
|
+
- type: step
|
|
131
|
+
name: ggplot
|
|
132
|
+
module: mas.library.lab.steps.viz.plot_ggplot
|
|
133
|
+
class: PlotPipelineStep
|
|
134
|
+
- type: step
|
|
135
|
+
name: join_dataframe
|
|
136
|
+
module: mas.library.lab.steps.data.join_dataframe
|
|
137
|
+
class: JoinDataFrameStep
|
|
138
|
+
- type: step
|
|
139
|
+
name: metrics_comparison_plot
|
|
140
|
+
module: mas.library.lab.steps.viz.metrics_comparison_plot
|
|
141
|
+
class: MetricsComparisonPlotStep
|
|
142
|
+
- type: step
|
|
143
|
+
name: metrics_to_dataframe
|
|
144
|
+
module: mas.library.lab.steps.eval.metrics_to_dataframe
|
|
145
|
+
class: MetricsToDataFrameStep
|
|
146
|
+
- type: step
|
|
147
|
+
name: pipeline_diagram
|
|
148
|
+
module: mas.library.lab.steps.viz.pipeline_diagram
|
|
149
|
+
class: PipelineDiagramStep
|
|
150
|
+
- type: step
|
|
151
|
+
name: plot
|
|
152
|
+
module: mas.library.lab.steps.viz.plot
|
|
153
|
+
class: PlotStep
|
|
154
|
+
- type: step
|
|
155
|
+
name: plot_communication_flow
|
|
156
|
+
module: mas.library.lab.steps.viz.plot_communication_flow
|
|
157
|
+
class: PlotCommunicationFlowStep
|
|
158
|
+
- type: step
|
|
159
|
+
name: plot_message_graph
|
|
160
|
+
module: mas.library.lab.steps.viz.plot_message_graph
|
|
161
|
+
class: PlotMessageGraphStep
|
|
162
|
+
- type: step
|
|
163
|
+
name: plot_multilevel_trajectory
|
|
164
|
+
module: mas.library.lab.steps.viz.plot_multilevel_trajectory
|
|
165
|
+
class: PlotMultilevelTrajectoryStep
|
|
166
|
+
- type: step
|
|
167
|
+
name: plot_trajectory
|
|
168
|
+
module: mas.library.lab.steps.viz.plot_trajectory
|
|
169
|
+
class: PlotTrajectoryStep
|
|
170
|
+
- type: step
|
|
171
|
+
name: plotnine
|
|
172
|
+
module: mas.library.lab.steps.viz.plotnine
|
|
173
|
+
class: PlotNineStep
|
|
174
|
+
- type: step
|
|
175
|
+
name: processor
|
|
176
|
+
module: mas.library.lab.steps.data.processor
|
|
177
|
+
class: ProcessorStep
|
|
178
|
+
- type: step
|
|
179
|
+
name: serialize
|
|
180
|
+
module: mas.library.lab.steps.data.serialize
|
|
181
|
+
class: SerializeStep
|
|
182
|
+
- type: step
|
|
183
|
+
name: service_start
|
|
184
|
+
module: mas.library.lab.steps.services.service_start
|
|
185
|
+
class: ServiceStartStep
|
|
186
|
+
- type: step
|
|
187
|
+
name: service_stop
|
|
188
|
+
module: mas.library.lab.steps.services.service_stop
|
|
189
|
+
class: ServiceStopStep
|
|
190
|
+
- type: step
|
|
191
|
+
name: to_dataframe
|
|
192
|
+
module: mas.library.lab.steps.data.to_dataframe
|
|
193
|
+
class: ToDataFrameStep
|
|
194
|
+
- type: step
|
|
195
|
+
name: validate_outputs
|
|
196
|
+
module: mas.library.lab.steps.eval.validate_outputs
|
|
197
|
+
class: ValidateOutputsStep
|
|
198
|
+
- type: codec
|
|
199
|
+
name: otel_traces-otlp
|
|
200
|
+
urn: mas.codec.otel_traces_otlp
|
|
201
|
+
module: mas.library.lab.codecs.otel_codecs
|
|
202
|
+
class: OtlpOtelCodec
|
|
203
|
+
attributes:
|
|
204
|
+
artifact_kind: otel_traces
|
|
205
|
+
store_type: otlp
|
|
206
|
+
- type: codec
|
|
207
|
+
name: otel_traces-clickhouse
|
|
208
|
+
urn: mas.codec.otel_traces_clickhouse
|
|
209
|
+
module: mas.library.lab.codecs.otel_codecs
|
|
210
|
+
class: ClickHouseOtelCodec
|
|
211
|
+
attributes:
|
|
212
|
+
artifact_kind: otel_traces
|
|
213
|
+
store_type: clickhouse
|
|
214
|
+
- type: codec
|
|
215
|
+
name: otel_traces-filesystem
|
|
216
|
+
urn: mas.codec.otel_traces_filesystem
|
|
217
|
+
module: mas.library.lab.codecs.otel_codecs
|
|
218
|
+
class: FilesystemOtelCodec
|
|
219
|
+
attributes:
|
|
220
|
+
artifact_kind: otel_traces
|
|
221
|
+
store_type: filesystem
|
|
222
|
+
- type: codec
|
|
223
|
+
name: events-filesystem
|
|
224
|
+
urn: mas.codec.events_filesystem
|
|
225
|
+
module: mas.library.lab.codecs.otel_codecs
|
|
226
|
+
class: FilesystemEventsCodec
|
|
227
|
+
attributes:
|
|
228
|
+
artifact_kind: events
|
|
229
|
+
store_type: filesystem
|
|
230
|
+
|
|
231
|
+
# Experimental deterministic design patterns (local, not OSS)
|
|
232
|
+
- type: design_pattern
|
|
233
|
+
name: deterministic_voting
|
|
234
|
+
urn: mas.dp.deterministic_voting
|
|
235
|
+
module: mas.library.lab.plugins.design_patterns.voting
|
|
236
|
+
class: DeterministicVotingPlugin
|
|
237
|
+
- type: design_pattern
|
|
238
|
+
name: deterministic_staged_debate
|
|
239
|
+
urn: mas.dp.deterministic_staged_debate
|
|
240
|
+
module: mas.library.lab.plugins.design_patterns.staged_debate
|
|
241
|
+
class: DeterministicStagedDebatePlugin
|
|
242
|
+
- type: design_pattern
|
|
243
|
+
name: deterministic_supervised
|
|
244
|
+
urn: mas.dp.deterministic_supervised
|
|
245
|
+
module: mas.library.lab.plugins.design_patterns.supervised
|
|
246
|
+
class: DeterministicSupervisedPlugin
|
|
247
|
+
- type: design_pattern
|
|
248
|
+
name: deterministic_verifier
|
|
249
|
+
urn: mas.dp.deterministic_verifier
|
|
250
|
+
module: mas.library.lab.plugins.design_patterns.verifier
|
|
251
|
+
class: DeterministicVerifierPlugin
|
|
252
|
+
|
|
253
|
+
- type: artifact
|
|
254
|
+
name: dataframe
|
|
255
|
+
module: mas.library.lab.artifact_types
|
|
256
|
+
class: DataFrame
|
|
257
|
+
- type: artifact
|
|
258
|
+
name: metrics
|
|
259
|
+
module: mas.library.lab.artifact_types
|
|
260
|
+
class: Metrics
|
|
261
|
+
- type: artifact
|
|
262
|
+
name: plot
|
|
263
|
+
module: mas.library.lab.artifact_types
|
|
264
|
+
class: Plot
|
|
265
|
+
- type: artifact
|
|
266
|
+
name: run_info
|
|
267
|
+
module: mas.library.lab.artifact_types
|
|
268
|
+
class: RunInfo
|
|
269
|
+
- type: artifact
|
|
270
|
+
name: trace
|
|
271
|
+
module: mas.library.lab.artifact_types
|
|
272
|
+
class: Trace
|
|
273
|
+
- type: artifact
|
|
274
|
+
name: chat
|
|
275
|
+
module: mas.library.lab.artifact_types
|
|
276
|
+
class: ChatSnapshot
|
|
277
|
+
- type: artifact
|
|
278
|
+
name: topology
|
|
279
|
+
module: mas.library.lab.artifact_types
|
|
280
|
+
class: TopologySnapshot
|
|
281
|
+
- type: artifact
|
|
282
|
+
name: series
|
|
283
|
+
module: mas.library.lab.artifact_types
|
|
284
|
+
class: LoopSeries
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Copyright (c) 2026 Cisco Systems, Inc. and its affiliates
|
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
[build-system]
|
|
4
|
+
requires = ["hatchling"]
|
|
5
|
+
build-backend = "hatchling.build"
|
|
6
|
+
|
|
7
|
+
[project]
|
|
8
|
+
name = "mas-lab-library-lab"
|
|
9
|
+
version = "0.2.0"
|
|
10
|
+
description = "MAS Lab provider library with public eval plugins."
|
|
11
|
+
readme = "README.md"
|
|
12
|
+
requires-python = ">=3.11"
|
|
13
|
+
license = {text = "Apache-2.0"}
|
|
14
|
+
authors = [{name = "MAS Framework Contributors"}]
|
|
15
|
+
dependencies = [
|
|
16
|
+
"mas-lab-component-core",
|
|
17
|
+
"mas-lab-component-bench",
|
|
18
|
+
]
|
|
19
|
+
|
|
20
|
+
[project.entry-points."mas.lab.eval.plugins"]
|
|
21
|
+
mcev1 = "mas.library.lab.eval.mcev1:MCEv1Provider"
|
|
22
|
+
|
|
23
|
+
[project.entry-points."mas.lab.ui.plots"]
|
|
24
|
+
series = "mas.library.lab.ui.series:SeriesPlots"
|
|
25
|
+
|
|
26
|
+
[project.entry-points."mas.runtime.manifest_libraries"]
|
|
27
|
+
lab = "mas.library.lab"
|
|
28
|
+
|
|
29
|
+
[tool.hatch.build.targets.wheel]
|
|
30
|
+
packages = ["src/mas"]
|
|
31
|
+
|
|
32
|
+
[tool.hatch.build.targets.wheel.force-include]
|
|
33
|
+
"library.yaml" = "mas/library/lab/library.yaml"
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Copyright (c) 2026 Cisco Systems, Inc. and its affiliates
|
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
"""mas.library.lab package."""
|
|
4
|
+
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
|
|
7
|
+
from mas._dist import installed_version
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def package_root() -> Path:
|
|
11
|
+
"""Return the directory containing ``library.yaml`` for this manifest library."""
|
|
12
|
+
here = Path(__file__).resolve().parent
|
|
13
|
+
for parent in [here, *here.parents]:
|
|
14
|
+
if (parent / "library.yaml").is_file():
|
|
15
|
+
return parent
|
|
16
|
+
return here
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
__version__ = installed_version(file=__file__)
|
|
20
|
+
|
|
21
|
+
from mas.library.lab.plots import execution_chain_graph # noqa: E402
|
|
22
|
+
|
|
23
|
+
__all__ = ["execution_chain_graph"]
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Copyright (c) 2026 Cisco Systems, Inc. and its affiliates
|
|
2
|
+
# SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
"""Artifact kinds declared by the lab library.
|
|
4
|
+
|
|
5
|
+
Each class is a library.yaml ``type: artifact`` plugin
|
|
6
|
+
(``type`` / ``name`` / ``module`` / ``class``).
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from __future__ import annotations
|
|
10
|
+
|
|
11
|
+
from mas.lab.lab.config.artifact_types import ArtifactType
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class Trace(ArtifactType):
|
|
15
|
+
path = "{run_dir}/traces/events.jsonl"
|
|
16
|
+
format = "jsonl"
|
|
17
|
+
stream = "native"
|
|
18
|
+
realtime = True
|
|
19
|
+
description = "Raw observability event stream from a single run."
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class RunInfo(ArtifactType):
|
|
23
|
+
path = "{run_dir}/run_info.json"
|
|
24
|
+
format = "json"
|
|
25
|
+
description = "Run metadata (hash, model, timing, status)."
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class Plot(ArtifactType):
|
|
29
|
+
path = "{level_dir}/plot.png"
|
|
30
|
+
format = "png"
|
|
31
|
+
description = "Visualization output (PNG, SVG, HTML, or PDF)."
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class Metrics(ArtifactType):
|
|
35
|
+
path = "{level_dir}/metrics.json"
|
|
36
|
+
format = "json"
|
|
37
|
+
schema = "artefacts/metrics.schema.json"
|
|
38
|
+
stream = "metric"
|
|
39
|
+
realtime = True
|
|
40
|
+
description = "Quality metrics computed by evaluation providers."
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
class ChatSnapshot(ArtifactType):
|
|
44
|
+
path = "{run_dir}/custom.chat.jsonl"
|
|
45
|
+
format = "jsonl"
|
|
46
|
+
stream = "custom.chat"
|
|
47
|
+
plot = "chat"
|
|
48
|
+
realtime = True
|
|
49
|
+
description = "Folded chat cards for the chat HTML plot."
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
class TopologySnapshot(ArtifactType):
|
|
53
|
+
path = "{run_dir}/custom.topology.jsonl"
|
|
54
|
+
format = "jsonl"
|
|
55
|
+
stream = "custom.topology"
|
|
56
|
+
plot = "topology"
|
|
57
|
+
realtime = True
|
|
58
|
+
description = "Folded graph for the topology HTML plot."
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
class LoopSeries(ArtifactType):
|
|
62
|
+
path = "{run_dir}/plots/series.svg"
|
|
63
|
+
format = "svg"
|
|
64
|
+
stream = "series"
|
|
65
|
+
plot = "loop"
|
|
66
|
+
realtime = True
|
|
67
|
+
description = "Generic timeseries (html live; svg/png end-state)."
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
class DataFrame(ArtifactType):
|
|
71
|
+
path = "{level_dir}/data.csv"
|
|
72
|
+
format = "csv"
|
|
73
|
+
description = "Tidy CSV dataframe for analysis and plotting."
|
|
File without changes
|