mmt-mcp 1.43.0-pre → 1.43.2-pre

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 (55) hide show
  1. package/dist/examples/ai/golden_smoke/apis/echo.mmt +1 -1
  2. package/dist/examples/examples-index.json +264 -0
  3. package/dist/examples/intermediate/28_http_body_formats/README.md +19 -0
  4. package/dist/examples/intermediate/28_http_body_formats/body_formats_test.mmt +3 -0
  5. package/dist/examples/intermediate/28_http_body_formats/post_multipart.mmt +4 -0
  6. package/dist/examples/intermediate/30_suite_memory_stress/README.md +42 -0
  7. package/dist/examples/intermediate/30_suite_memory_stress/branches/alpha/suite.mmt +10 -0
  8. package/dist/examples/intermediate/30_suite_memory_stress/branches/alpha/tests/test_01.mmt +452 -0
  9. package/dist/examples/intermediate/30_suite_memory_stress/branches/alpha/tests/test_02.mmt +452 -0
  10. package/dist/examples/intermediate/30_suite_memory_stress/branches/alpha/tests/test_03.mmt +452 -0
  11. package/dist/examples/intermediate/30_suite_memory_stress/branches/alpha/tests/test_04.mmt +452 -0
  12. package/dist/examples/intermediate/30_suite_memory_stress/branches/alpha/tests/test_05.mmt +452 -0
  13. package/dist/examples/intermediate/30_suite_memory_stress/branches/alpha/tests/test_06.mmt +452 -0
  14. package/dist/examples/intermediate/30_suite_memory_stress/branches/beta/suite.mmt +10 -0
  15. package/dist/examples/intermediate/30_suite_memory_stress/branches/beta/tests/test_01.mmt +420 -0
  16. package/dist/examples/intermediate/30_suite_memory_stress/branches/beta/tests/test_02.mmt +420 -0
  17. package/dist/examples/intermediate/30_suite_memory_stress/branches/beta/tests/test_03.mmt +420 -0
  18. package/dist/examples/intermediate/30_suite_memory_stress/branches/beta/tests/test_04.mmt +420 -0
  19. package/dist/examples/intermediate/30_suite_memory_stress/branches/beta/tests/test_05.mmt +420 -0
  20. package/dist/examples/intermediate/30_suite_memory_stress/branches/beta/tests/test_06.mmt +420 -0
  21. package/dist/examples/intermediate/30_suite_memory_stress/branches/gamma/deep/suite.mmt +9 -0
  22. package/dist/examples/intermediate/30_suite_memory_stress/branches/gamma/deep/tests/test_01.mmt +484 -0
  23. package/dist/examples/intermediate/30_suite_memory_stress/branches/gamma/deep/tests/test_02.mmt +484 -0
  24. package/dist/examples/intermediate/30_suite_memory_stress/branches/gamma/deep/tests/test_03.mmt +484 -0
  25. package/dist/examples/intermediate/30_suite_memory_stress/branches/gamma/deep/tests/test_04.mmt +484 -0
  26. package/dist/examples/intermediate/30_suite_memory_stress/branches/gamma/deep/tests/test_05.mmt +484 -0
  27. package/dist/examples/intermediate/30_suite_memory_stress/branches/gamma/shallow/suite.mmt +8 -0
  28. package/dist/examples/intermediate/30_suite_memory_stress/branches/gamma/shallow/tests/test_01.mmt +356 -0
  29. package/dist/examples/intermediate/30_suite_memory_stress/branches/gamma/shallow/tests/test_02.mmt +356 -0
  30. package/dist/examples/intermediate/30_suite_memory_stress/branches/gamma/shallow/tests/test_03.mmt +356 -0
  31. package/dist/examples/intermediate/30_suite_memory_stress/branches/gamma/shallow/tests/test_04.mmt +356 -0
  32. package/dist/examples/intermediate/30_suite_memory_stress/branches/gamma/suite.mmt +6 -0
  33. package/dist/examples/intermediate/30_suite_memory_stress/bundles/core/suite.mmt +9 -0
  34. package/dist/examples/intermediate/30_suite_memory_stress/bundles/gamma_wrap/suite.mmt +5 -0
  35. package/dist/examples/intermediate/30_suite_memory_stress/bundles/stage_one/suite.mmt +6 -0
  36. package/dist/examples/intermediate/30_suite_memory_stress/envelopes/layer_1/suite.mmt +5 -0
  37. package/dist/examples/intermediate/30_suite_memory_stress/envelopes/layer_2/suite.mmt +5 -0
  38. package/dist/examples/intermediate/30_suite_memory_stress/envelopes/layer_3/suite.mmt +5 -0
  39. package/dist/examples/intermediate/30_suite_memory_stress/envelopes/leaf_wrap/suite.mmt +5 -0
  40. package/dist/examples/intermediate/30_suite_memory_stress/leaf/suite.mmt +12 -0
  41. package/dist/examples/intermediate/30_suite_memory_stress/leaf/tests/test_01.mmt +324 -0
  42. package/dist/examples/intermediate/30_suite_memory_stress/leaf/tests/test_02.mmt +324 -0
  43. package/dist/examples/intermediate/30_suite_memory_stress/leaf/tests/test_03.mmt +324 -0
  44. package/dist/examples/intermediate/30_suite_memory_stress/leaf/tests/test_04.mmt +324 -0
  45. package/dist/examples/intermediate/30_suite_memory_stress/leaf/tests/test_05.mmt +324 -0
  46. package/dist/examples/intermediate/30_suite_memory_stress/leaf/tests/test_06.mmt +324 -0
  47. package/dist/examples/intermediate/30_suite_memory_stress/leaf/tests/test_07.mmt +324 -0
  48. package/dist/examples/intermediate/30_suite_memory_stress/leaf/tests/test_08.mmt +324 -0
  49. package/dist/examples/intermediate/30_suite_memory_stress/nested/leaf_shell/suite.mmt +5 -0
  50. package/dist/examples/intermediate/30_suite_memory_stress/suite.mmt +5 -0
  51. package/dist/guides/generate-api.md +1 -1
  52. package/dist/guides/golden-smoke.md +1 -1
  53. package/dist/server.cjs +859 -129
  54. package/dist/server.js +859 -129
  55. package/package.json +1 -1
@@ -4,7 +4,7 @@ description: Golden smoke API for AI agents — minimal POST with outputs
4
4
  inputs:
5
5
  message: hello
6
6
  outputs:
7
- echoed: body.message
7
+ echoed: body.body.message
8
8
  url: https://test.mmt.dev/echo
9
9
  method: post
10
10
  format: json
@@ -787,6 +787,270 @@
787
787
  "category": "intermediate",
788
788
  "title": "Untagged"
789
789
  },
790
+ {
791
+ "path": "intermediate/30_suite_memory_stress/branches/alpha/suite.mmt",
792
+ "type": "suite",
793
+ "category": "intermediate",
794
+ "title": "\"Alpha branch\""
795
+ },
796
+ {
797
+ "path": "intermediate/30_suite_memory_stress/branches/alpha/tests/test_01.mmt",
798
+ "type": "test",
799
+ "category": "intermediate",
800
+ "title": "\"test_01\""
801
+ },
802
+ {
803
+ "path": "intermediate/30_suite_memory_stress/branches/alpha/tests/test_02.mmt",
804
+ "type": "test",
805
+ "category": "intermediate",
806
+ "title": "\"test_02\""
807
+ },
808
+ {
809
+ "path": "intermediate/30_suite_memory_stress/branches/alpha/tests/test_03.mmt",
810
+ "type": "test",
811
+ "category": "intermediate",
812
+ "title": "\"test_03\""
813
+ },
814
+ {
815
+ "path": "intermediate/30_suite_memory_stress/branches/alpha/tests/test_04.mmt",
816
+ "type": "test",
817
+ "category": "intermediate",
818
+ "title": "\"test_04\""
819
+ },
820
+ {
821
+ "path": "intermediate/30_suite_memory_stress/branches/alpha/tests/test_05.mmt",
822
+ "type": "test",
823
+ "category": "intermediate",
824
+ "title": "\"test_05\""
825
+ },
826
+ {
827
+ "path": "intermediate/30_suite_memory_stress/branches/alpha/tests/test_06.mmt",
828
+ "type": "test",
829
+ "category": "intermediate",
830
+ "title": "\"test_06\""
831
+ },
832
+ {
833
+ "path": "intermediate/30_suite_memory_stress/branches/beta/suite.mmt",
834
+ "type": "suite",
835
+ "category": "intermediate",
836
+ "title": "\"Beta branch\""
837
+ },
838
+ {
839
+ "path": "intermediate/30_suite_memory_stress/branches/beta/tests/test_01.mmt",
840
+ "type": "test",
841
+ "category": "intermediate",
842
+ "title": "\"test_01\""
843
+ },
844
+ {
845
+ "path": "intermediate/30_suite_memory_stress/branches/beta/tests/test_02.mmt",
846
+ "type": "test",
847
+ "category": "intermediate",
848
+ "title": "\"test_02\""
849
+ },
850
+ {
851
+ "path": "intermediate/30_suite_memory_stress/branches/beta/tests/test_03.mmt",
852
+ "type": "test",
853
+ "category": "intermediate",
854
+ "title": "\"test_03\""
855
+ },
856
+ {
857
+ "path": "intermediate/30_suite_memory_stress/branches/beta/tests/test_04.mmt",
858
+ "type": "test",
859
+ "category": "intermediate",
860
+ "title": "\"test_04\""
861
+ },
862
+ {
863
+ "path": "intermediate/30_suite_memory_stress/branches/beta/tests/test_05.mmt",
864
+ "type": "test",
865
+ "category": "intermediate",
866
+ "title": "\"test_05\""
867
+ },
868
+ {
869
+ "path": "intermediate/30_suite_memory_stress/branches/beta/tests/test_06.mmt",
870
+ "type": "test",
871
+ "category": "intermediate",
872
+ "title": "\"test_06\""
873
+ },
874
+ {
875
+ "path": "intermediate/30_suite_memory_stress/branches/gamma/deep/suite.mmt",
876
+ "type": "suite",
877
+ "category": "intermediate",
878
+ "title": "\"Gamma deep suite\""
879
+ },
880
+ {
881
+ "path": "intermediate/30_suite_memory_stress/branches/gamma/deep/tests/test_01.mmt",
882
+ "type": "test",
883
+ "category": "intermediate",
884
+ "title": "\"test_01\""
885
+ },
886
+ {
887
+ "path": "intermediate/30_suite_memory_stress/branches/gamma/deep/tests/test_02.mmt",
888
+ "type": "test",
889
+ "category": "intermediate",
890
+ "title": "\"test_02\""
891
+ },
892
+ {
893
+ "path": "intermediate/30_suite_memory_stress/branches/gamma/deep/tests/test_03.mmt",
894
+ "type": "test",
895
+ "category": "intermediate",
896
+ "title": "\"test_03\""
897
+ },
898
+ {
899
+ "path": "intermediate/30_suite_memory_stress/branches/gamma/deep/tests/test_04.mmt",
900
+ "type": "test",
901
+ "category": "intermediate",
902
+ "title": "\"test_04\""
903
+ },
904
+ {
905
+ "path": "intermediate/30_suite_memory_stress/branches/gamma/deep/tests/test_05.mmt",
906
+ "type": "test",
907
+ "category": "intermediate",
908
+ "title": "\"test_05\""
909
+ },
910
+ {
911
+ "path": "intermediate/30_suite_memory_stress/branches/gamma/shallow/suite.mmt",
912
+ "type": "suite",
913
+ "category": "intermediate",
914
+ "title": "\"Gamma shallow suite\""
915
+ },
916
+ {
917
+ "path": "intermediate/30_suite_memory_stress/branches/gamma/shallow/tests/test_01.mmt",
918
+ "type": "test",
919
+ "category": "intermediate",
920
+ "title": "\"test_01\""
921
+ },
922
+ {
923
+ "path": "intermediate/30_suite_memory_stress/branches/gamma/shallow/tests/test_02.mmt",
924
+ "type": "test",
925
+ "category": "intermediate",
926
+ "title": "\"test_02\""
927
+ },
928
+ {
929
+ "path": "intermediate/30_suite_memory_stress/branches/gamma/shallow/tests/test_03.mmt",
930
+ "type": "test",
931
+ "category": "intermediate",
932
+ "title": "\"test_03\""
933
+ },
934
+ {
935
+ "path": "intermediate/30_suite_memory_stress/branches/gamma/shallow/tests/test_04.mmt",
936
+ "type": "test",
937
+ "category": "intermediate",
938
+ "title": "\"test_04\""
939
+ },
940
+ {
941
+ "path": "intermediate/30_suite_memory_stress/branches/gamma/suite.mmt",
942
+ "type": "suite",
943
+ "category": "intermediate",
944
+ "title": "\"Gamma branch\""
945
+ },
946
+ {
947
+ "path": "intermediate/30_suite_memory_stress/bundles/core/suite.mmt",
948
+ "type": "suite",
949
+ "category": "intermediate",
950
+ "title": "\"Core bundle\""
951
+ },
952
+ {
953
+ "path": "intermediate/30_suite_memory_stress/bundles/gamma_wrap/suite.mmt",
954
+ "type": "suite",
955
+ "category": "intermediate",
956
+ "title": "\"Gamma wrapper\""
957
+ },
958
+ {
959
+ "path": "intermediate/30_suite_memory_stress/bundles/stage_one/suite.mmt",
960
+ "type": "suite",
961
+ "category": "intermediate",
962
+ "title": "\"Stage one bundle\""
963
+ },
964
+ {
965
+ "path": "intermediate/30_suite_memory_stress/envelopes/layer_1/suite.mmt",
966
+ "type": "suite",
967
+ "category": "intermediate",
968
+ "title": "\"Envelope layer 1\""
969
+ },
970
+ {
971
+ "path": "intermediate/30_suite_memory_stress/envelopes/layer_2/suite.mmt",
972
+ "type": "suite",
973
+ "category": "intermediate",
974
+ "title": "\"Envelope layer 2\""
975
+ },
976
+ {
977
+ "path": "intermediate/30_suite_memory_stress/envelopes/layer_3/suite.mmt",
978
+ "type": "suite",
979
+ "category": "intermediate",
980
+ "title": "\"Envelope layer 3\""
981
+ },
982
+ {
983
+ "path": "intermediate/30_suite_memory_stress/envelopes/leaf_wrap/suite.mmt",
984
+ "type": "suite",
985
+ "category": "intermediate",
986
+ "title": "\"Leaf envelope\""
987
+ },
988
+ {
989
+ "path": "intermediate/30_suite_memory_stress/leaf/suite.mmt",
990
+ "type": "suite",
991
+ "category": "intermediate",
992
+ "title": "\"Leaf suite\""
993
+ },
994
+ {
995
+ "path": "intermediate/30_suite_memory_stress/leaf/tests/test_01.mmt",
996
+ "type": "test",
997
+ "category": "intermediate",
998
+ "title": "\"test_01\""
999
+ },
1000
+ {
1001
+ "path": "intermediate/30_suite_memory_stress/leaf/tests/test_02.mmt",
1002
+ "type": "test",
1003
+ "category": "intermediate",
1004
+ "title": "\"test_02\""
1005
+ },
1006
+ {
1007
+ "path": "intermediate/30_suite_memory_stress/leaf/tests/test_03.mmt",
1008
+ "type": "test",
1009
+ "category": "intermediate",
1010
+ "title": "\"test_03\""
1011
+ },
1012
+ {
1013
+ "path": "intermediate/30_suite_memory_stress/leaf/tests/test_04.mmt",
1014
+ "type": "test",
1015
+ "category": "intermediate",
1016
+ "title": "\"test_04\""
1017
+ },
1018
+ {
1019
+ "path": "intermediate/30_suite_memory_stress/leaf/tests/test_05.mmt",
1020
+ "type": "test",
1021
+ "category": "intermediate",
1022
+ "title": "\"test_05\""
1023
+ },
1024
+ {
1025
+ "path": "intermediate/30_suite_memory_stress/leaf/tests/test_06.mmt",
1026
+ "type": "test",
1027
+ "category": "intermediate",
1028
+ "title": "\"test_06\""
1029
+ },
1030
+ {
1031
+ "path": "intermediate/30_suite_memory_stress/leaf/tests/test_07.mmt",
1032
+ "type": "test",
1033
+ "category": "intermediate",
1034
+ "title": "\"test_07\""
1035
+ },
1036
+ {
1037
+ "path": "intermediate/30_suite_memory_stress/leaf/tests/test_08.mmt",
1038
+ "type": "test",
1039
+ "category": "intermediate",
1040
+ "title": "\"test_08\""
1041
+ },
1042
+ {
1043
+ "path": "intermediate/30_suite_memory_stress/nested/leaf_shell/suite.mmt",
1044
+ "type": "suite",
1045
+ "category": "intermediate",
1046
+ "title": "\"Leaf shell\""
1047
+ },
1048
+ {
1049
+ "path": "intermediate/30_suite_memory_stress/suite.mmt",
1050
+ "type": "suite",
1051
+ "category": "intermediate",
1052
+ "title": "\"Suite memory stress\""
1053
+ },
790
1054
  {
791
1055
  "path": "professional/01_report_generation/api/echo.mmt",
792
1056
  "type": "api",
@@ -54,4 +54,23 @@ npx testlight run examples/intermediate/28_http_body_formats/body_formats_test.m
54
54
  - **`binary`** — `body` is a relative file path; bytes load at send time.
55
55
  - **`multipart`** — `body` is a parts array mixing text fields and file paths.
56
56
 
57
+ ### How to tell multipart worked
58
+
59
+ `post_multipart.mmt` sends two parts to `/echo`:
60
+
61
+ 1. Text field `description` (from `i:description`, default `hello from multipart`)
62
+ 2. File part `file` from `./assets/sample.txt`
63
+
64
+ Open `post_multipart.mmt` and **Send**, or run `body_formats_test.mmt`. A passing run means:
65
+
66
+ - HTTP **200**
67
+ - `echoed_description` equals the input text
68
+ - `request_content_type` contains `multipart/form-data` (the request was encoded as multipart, not JSON)
69
+ - `echoed_filename` is `sample.txt` and `echoed_file` contains the file text
70
+
71
+ ```sh
72
+ node mmtcli/dist/cli.js run examples/intermediate/28_http_body_formats/post_multipart.mmt
73
+ node mmtcli/dist/cli.js run examples/intermediate/28_http_body_formats/body_formats_test.mmt
74
+ ```
75
+
57
76
  See also: [HTTP bodies](../../../docs/files/api/protocols/http-bodies.md) · [Request body](../../../docs/files/api/body/body.md)
@@ -61,3 +61,6 @@ steps:
61
61
  expect:
62
62
  status_code: 200
63
63
  echoed_description: hello from multipart
64
+ request_content_type: =C multipart/form-data
65
+ echoed_filename: sample.txt
66
+ echoed_file: =C Multimeter multipart demo file
@@ -5,10 +5,14 @@ inputs:
5
5
  description: hello from multipart
6
6
  outputs:
7
7
  echoed_description: body[body][description]
8
+ echoed_filename: body[body][file][filename]
9
+ echoed_file: body[body][file][content]
10
+ request_content_type: body[headers][content-type]
8
11
  status_code: status
9
12
  url: https://test.mmt.dev/echo
10
13
  method: post
11
14
  format: multipart
15
+ # Each list item is one form part: `value` for text, `file` for a path relative to this .mmt file.
12
16
  body:
13
17
  - name: description
14
18
  value: i:description
@@ -0,0 +1,42 @@
1
+ # Suite memory stress
2
+
3
+ Large nested suite for testing suite panel performance, report spill to IndexedDB, and lazy report reload on expand.
4
+
5
+ ## Layout
6
+
7
+ Root `suite.mmt` wraps several explicit suite-in-suite envelopes (no circular references):
8
+
9
+ ```
10
+ suite.mmt
11
+ └── envelopes/layer_1 → layer_2 → layer_3
12
+ └── bundles/core
13
+ ├── bundles/stage_one → branches/alpha + branches/beta (parallel)
14
+ ├── then
15
+ ├── bundles/gamma_wrap → branches/gamma → shallow + deep
16
+ ├── then
17
+ └── envelopes/leaf_wrap → nested/leaf_shell → leaf/
18
+ ```
19
+
20
+ Each test hits `https://test.mmt.dev/json` many times. Every HTTP and check step uses `report: all` so suite runs emit full pass reports (not just failures). Long step titles inflate report size (~29 tests, ~80+ step reports per test).
21
+
22
+ ## Run
23
+
24
+ Open `suite.mmt` in VS Code and click **Run suite**.
25
+
26
+ CLI:
27
+
28
+ ```bash
29
+ npx testlight run examples/intermediate/30_suite_memory_stress/suite.mmt
30
+ ```
31
+
32
+ ## Force report spill (optional)
33
+
34
+ Default in-memory budget is 2 MB (`multimeter.suite.reportSpillBytes`). To see spill sooner during UI testing, lower it in VS Code settings, e.g. `50000` (50 KB). Set to `0` to disable spill.
35
+
36
+ When over the threshold, step details move to internal browser storage and load when you expand a test row in the suite tree. Overview counts stay correct; export materializes spilled data automatically.
37
+
38
+ ## Regenerate
39
+
40
+ ```bash
41
+ node generate-stress-files.mjs
42
+ ```
@@ -0,0 +1,10 @@
1
+ type: suite
2
+ title: "Alpha branch"
3
+ description: "Six verbose tests in parallel — first nested suite under stage A"
4
+ items:
5
+ - tests/test_01.mmt
6
+ - tests/test_02.mmt
7
+ - tests/test_03.mmt
8
+ - tests/test_04.mmt
9
+ - tests/test_05.mmt
10
+ - tests/test_06.mmt