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.
Files changed (75) hide show
  1. mas_lab_library_lab-0.2.0/.gitignore +86 -0
  2. mas_lab_library_lab-0.2.0/PKG-INFO +27 -0
  3. mas_lab_library_lab-0.2.0/README.md +16 -0
  4. mas_lab_library_lab-0.2.0/docs/developer-guide.md +33 -0
  5. mas_lab_library_lab-0.2.0/docs/user-guide.md +34 -0
  6. mas_lab_library_lab-0.2.0/library.yaml +284 -0
  7. mas_lab_library_lab-0.2.0/pyproject.toml +33 -0
  8. mas_lab_library_lab-0.2.0/src/mas/library/lab/__init__.py +23 -0
  9. mas_lab_library_lab-0.2.0/src/mas/library/lab/artifact_types.py +73 -0
  10. mas_lab_library_lab-0.2.0/src/mas/library/lab/codecs/__init__.py +0 -0
  11. mas_lab_library_lab-0.2.0/src/mas/library/lab/codecs/otel_codecs.py +456 -0
  12. mas_lab_library_lab-0.2.0/src/mas/library/lab/eval/__init__.py +7 -0
  13. mas_lab_library_lab-0.2.0/src/mas/library/lab/eval/mcev1.py +35 -0
  14. mas_lab_library_lab-0.2.0/src/mas/library/lab/plots.py +408 -0
  15. mas_lab_library_lab-0.2.0/src/mas/library/lab/plugins/design_patterns/__init__.py +16 -0
  16. mas_lab_library_lab-0.2.0/src/mas/library/lab/plugins/design_patterns/staged_debate.py +63 -0
  17. mas_lab_library_lab-0.2.0/src/mas/library/lab/plugins/design_patterns/supervised.py +61 -0
  18. mas_lab_library_lab-0.2.0/src/mas/library/lab/plugins/design_patterns/verifier.py +94 -0
  19. mas_lab_library_lab-0.2.0/src/mas/library/lab/plugins/design_patterns/voting.py +29 -0
  20. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/README.md +36 -0
  21. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/__init__.py +99 -0
  22. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/_io.py +100 -0
  23. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/data/analysis.py +130 -0
  24. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/data/collect_dataframe.py +203 -0
  25. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/data/dataset.py +67 -0
  26. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/data/deserialize.py +138 -0
  27. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/data/diff_trajectories.py +119 -0
  28. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/data/embed_trajectories.py +221 -0
  29. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/data/experiment.py +114 -0
  30. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/data/gather_level.py +120 -0
  31. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/data/generate_dataset.py +297 -0
  32. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/data/join_dataframe.py +145 -0
  33. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/data/processor.py +195 -0
  34. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/data/serialize.py +326 -0
  35. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/data/to_dataframe.py +196 -0
  36. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/eval/annotate_metrics.py +208 -0
  37. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/eval/collect_metrics.py +467 -0
  38. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/eval/compute_ci.py +487 -0
  39. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/eval/compute_drift.py +168 -0
  40. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/eval/mce.py +502 -0
  41. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/eval/metrics_files.py +86 -0
  42. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/eval/metrics_to_dataframe.py +109 -0
  43. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/eval/validate_outputs.py +53 -0
  44. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/extract/mealy_stats.py +387 -0
  45. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/extract/sys_stats.py +234 -0
  46. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/extract/trace_stats.py +445 -0
  47. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/extract/trajectories.py +309 -0
  48. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/services/events_to_otel.py +261 -0
  49. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/services/export_otel.py +196 -0
  50. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/services/file_tail.py +253 -0
  51. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/services/metric_event.py +67 -0
  52. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/services/plot_stream.py +131 -0
  53. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/services/service_start.py +168 -0
  54. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/services/service_stop.py +77 -0
  55. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/services/shell.py +56 -0
  56. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/viz/ci_plot.py +381 -0
  57. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/viz/metrics_comparison_plot.py +161 -0
  58. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/viz/pipeline_diagram.py +564 -0
  59. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/viz/plot.py +114 -0
  60. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/viz/plot_communication_flow.py +86 -0
  61. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/viz/plot_ggplot.py +189 -0
  62. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/viz/plot_message_graph.py +98 -0
  63. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/viz/plot_multilevel_trajectory.py +211 -0
  64. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/viz/plot_trajectory.py +94 -0
  65. mas_lab_library_lab-0.2.0/src/mas/library/lab/steps/viz/plotnine.py +527 -0
  66. mas_lab_library_lab-0.2.0/src/mas/library/lab/ui/__init__.py +3 -0
  67. mas_lab_library_lab-0.2.0/src/mas/library/lab/ui/assets/series.js +404 -0
  68. mas_lab_library_lab-0.2.0/src/mas/library/lab/ui/series.py +134 -0
  69. mas_lab_library_lab-0.2.0/tests/test_file_tail.py +157 -0
  70. mas_lab_library_lab-0.2.0/tests/test_mce_version.py +7 -0
  71. mas_lab_library_lab-0.2.0/tests/test_metric_event.py +30 -0
  72. mas_lab_library_lab-0.2.0/tests/test_plot_stream.py +94 -0
  73. mas_lab_library_lab-0.2.0/tests/test_shell_step.py +20 -0
  74. mas_lab_library_lab-0.2.0/tests/test_trace_stats.py +31 -0
  75. 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."