doc-detective-common 3.6.0 → 3.7.0-preview.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.
Files changed (67) hide show
  1. package/dist/schemas/config_v3.schema.json +3880 -40
  2. package/dist/schemas/report_v3.schema.json +3991 -69
  3. package/dist/schemas/resolvedTests_v3.schema.json +7925 -163
  4. package/dist/schemas/sourceLocation_v3.schema.json +106 -0
  5. package/dist/schemas/spec_v3.schema.json +3991 -69
  6. package/dist/schemas/step_v3.schema.json +1915 -7
  7. package/dist/schemas/test_v3.schema.json +3995 -73
  8. package/package.json +6 -2
  9. package/src/ai.js +532 -0
  10. package/src/index.js +8 -0
  11. package/src/refineStep.js +267 -0
  12. package/src/schemas/build/checkLink_v2.schema.json +1 -1
  13. package/src/schemas/build/checkLink_v3.schema.json +1 -1
  14. package/src/schemas/build/click_v3.schema.json +1 -1
  15. package/src/schemas/build/config_v2.schema.json +14 -14
  16. package/src/schemas/build/config_v3.schema.json +30 -6
  17. package/src/schemas/build/context_v2.schema.json +1 -1
  18. package/src/schemas/build/context_v3.schema.json +1 -1
  19. package/src/schemas/build/dragAndDrop_v3.schema.json +1 -1
  20. package/src/schemas/build/find_v2.schema.json +3 -3
  21. package/src/schemas/build/find_v3.schema.json +4 -4
  22. package/src/schemas/build/goTo_v2.schema.json +1 -1
  23. package/src/schemas/build/goTo_v3.schema.json +1 -1
  24. package/src/schemas/build/httpRequest_v2.schema.json +2 -2
  25. package/src/schemas/build/httpRequest_v3.schema.json +3 -3
  26. package/src/schemas/build/loadCookie_v3.schema.json +1 -1
  27. package/src/schemas/build/loadVariables_v3.schema.json +1 -1
  28. package/src/schemas/build/moveTo_v2.schema.json +1 -1
  29. package/src/schemas/build/openApi_v2.schema.json +1 -1
  30. package/src/schemas/build/openApi_v3.schema.json +1 -1
  31. package/src/schemas/build/record_v3.schema.json +1 -1
  32. package/src/schemas/build/report_v3.schema.json +5 -5
  33. package/src/schemas/build/resolvedTests_v3.schema.json +3 -3
  34. package/src/schemas/build/runCode_v2.schema.json +1 -1
  35. package/src/schemas/build/runCode_v3.schema.json +1 -1
  36. package/src/schemas/build/runShell_v2.schema.json +1 -1
  37. package/src/schemas/build/runShell_v3.schema.json +1 -1
  38. package/src/schemas/build/saveCookie_v3.schema.json +1 -1
  39. package/src/schemas/build/saveScreenshot_v2.schema.json +1 -1
  40. package/src/schemas/build/screenshot_v3.schema.json +1 -1
  41. package/src/schemas/build/setVariables_v2.schema.json +1 -1
  42. package/src/schemas/build/sourceLocation_v3.schema.json +107 -0
  43. package/src/schemas/build/spec_v2.schema.json +4 -4
  44. package/src/schemas/build/spec_v3.schema.json +4 -4
  45. package/src/schemas/build/startRecording_v2.schema.json +1 -1
  46. package/src/schemas/build/step_v3.schema.json +45 -38
  47. package/src/schemas/build/stopRecord_v3.schema.json +1 -1
  48. package/src/schemas/build/stopRecording_v2.schema.json +1 -1
  49. package/src/schemas/build/test_v2.schema.json +15 -15
  50. package/src/schemas/build/test_v3.schema.json +10 -6
  51. package/src/schemas/build/typeKeys_v2.schema.json +1 -1
  52. package/src/schemas/build/type_v3.schema.json +1 -1
  53. package/src/schemas/build/wait_v2.schema.json +1 -1
  54. package/src/schemas/build/wait_v3.schema.json +1 -1
  55. package/src/schemas/dereferenceSchemas.js +1 -0
  56. package/src/schemas/output_schemas/config_v3.schema.json +3880 -40
  57. package/src/schemas/output_schemas/report_v3.schema.json +3991 -69
  58. package/src/schemas/output_schemas/resolvedTests_v3.schema.json +7925 -163
  59. package/src/schemas/output_schemas/sourceLocation_v3.schema.json +106 -0
  60. package/src/schemas/output_schemas/spec_v3.schema.json +3991 -69
  61. package/src/schemas/output_schemas/step_v3.schema.json +1915 -7
  62. package/src/schemas/output_schemas/test_v3.schema.json +3995 -73
  63. package/src/schemas/schemas.json +25978 -596
  64. package/src/schemas/src_schemas/config_v3.schema.json +24 -0
  65. package/src/schemas/src_schemas/sourceLocation_v3.schema.json +106 -0
  66. package/src/schemas/src_schemas/step_v3.schema.json +7 -0
  67. package/src/schemas/src_schemas/test_v3.schema.json +4 -0
@@ -807,6 +807,112 @@
807
807
  "type": "string",
808
808
  "description": "ID of the step."
809
809
  },
810
+ "sourceLocation": {
811
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
812
+ "$schema": "http://json-schema.org/draft-07/schema#",
813
+ "title": "sourceLocation",
814
+ "type": "object",
815
+ "readOnly": true,
816
+ "additionalProperties": false,
817
+ "properties": {
818
+ "file": {
819
+ "type": "string",
820
+ "description": "Absolute path to the source file containing this test or step.",
821
+ "readOnly": true
822
+ },
823
+ "startLine": {
824
+ "type": "integer",
825
+ "description": "1-based line number where this test or step starts.",
826
+ "minimum": 1,
827
+ "readOnly": true
828
+ },
829
+ "endLine": {
830
+ "type": "integer",
831
+ "description": "1-based line number where this test or step ends.",
832
+ "minimum": 1,
833
+ "readOnly": true
834
+ },
835
+ "startColumn": {
836
+ "type": "integer",
837
+ "description": "1-based column number where this test or step starts on startLine.",
838
+ "minimum": 1,
839
+ "readOnly": true
840
+ },
841
+ "endColumn": {
842
+ "type": "integer",
843
+ "description": "1-based column number where this test or step ends on endLine.",
844
+ "minimum": 1,
845
+ "readOnly": true
846
+ },
847
+ "startOffset": {
848
+ "type": "integer",
849
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
850
+ "minimum": 0,
851
+ "readOnly": true
852
+ },
853
+ "endOffset": {
854
+ "type": "integer",
855
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
856
+ "minimum": 0,
857
+ "readOnly": true
858
+ },
859
+ "originalText": {
860
+ "type": "string",
861
+ "description": "The original text content of this test or step as found in the source file.",
862
+ "readOnly": true
863
+ },
864
+ "isInline": {
865
+ "type": "boolean",
866
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
867
+ "default": false,
868
+ "readOnly": true
869
+ },
870
+ "isAutoDetected": {
871
+ "type": "boolean",
872
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
873
+ "default": false,
874
+ "readOnly": true
875
+ },
876
+ "commentFormat": {
877
+ "type": "string",
878
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
879
+ "enum": [
880
+ "htmlComment",
881
+ "jsxComment",
882
+ "linkReference"
883
+ ],
884
+ "readOnly": true
885
+ }
886
+ },
887
+ "examples": [
888
+ {
889
+ "file": "/path/to/docs/getting-started.md",
890
+ "startLine": 42,
891
+ "endLine": 45,
892
+ "startColumn": 1,
893
+ "endColumn": 3,
894
+ "startOffset": 1250,
895
+ "endOffset": 1350,
896
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
897
+ "isInline": true,
898
+ "isAutoDetected": false,
899
+ "commentFormat": "htmlComment"
900
+ },
901
+ {
902
+ "file": "/path/to/docs/tutorial.md",
903
+ "startLine": 78,
904
+ "endLine": 78,
905
+ "startColumn": 1,
906
+ "endColumn": 45,
907
+ "startOffset": 2100,
908
+ "endOffset": 2145,
909
+ "originalText": "[example link](https://example.com)",
910
+ "isInline": true,
911
+ "isAutoDetected": true,
912
+ "commentFormat": "htmlComment"
913
+ }
914
+ ]
915
+ },
810
916
  "description": {
811
917
  "type": "string",
812
918
  "description": "Description of the step."
@@ -859,6 +965,112 @@
859
965
  "type": "string",
860
966
  "description": "ID of the step."
861
967
  },
968
+ "sourceLocation": {
969
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
970
+ "$schema": "http://json-schema.org/draft-07/schema#",
971
+ "title": "sourceLocation",
972
+ "type": "object",
973
+ "readOnly": true,
974
+ "additionalProperties": false,
975
+ "properties": {
976
+ "file": {
977
+ "type": "string",
978
+ "description": "Absolute path to the source file containing this test or step.",
979
+ "readOnly": true
980
+ },
981
+ "startLine": {
982
+ "type": "integer",
983
+ "description": "1-based line number where this test or step starts.",
984
+ "minimum": 1,
985
+ "readOnly": true
986
+ },
987
+ "endLine": {
988
+ "type": "integer",
989
+ "description": "1-based line number where this test or step ends.",
990
+ "minimum": 1,
991
+ "readOnly": true
992
+ },
993
+ "startColumn": {
994
+ "type": "integer",
995
+ "description": "1-based column number where this test or step starts on startLine.",
996
+ "minimum": 1,
997
+ "readOnly": true
998
+ },
999
+ "endColumn": {
1000
+ "type": "integer",
1001
+ "description": "1-based column number where this test or step ends on endLine.",
1002
+ "minimum": 1,
1003
+ "readOnly": true
1004
+ },
1005
+ "startOffset": {
1006
+ "type": "integer",
1007
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
1008
+ "minimum": 0,
1009
+ "readOnly": true
1010
+ },
1011
+ "endOffset": {
1012
+ "type": "integer",
1013
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
1014
+ "minimum": 0,
1015
+ "readOnly": true
1016
+ },
1017
+ "originalText": {
1018
+ "type": "string",
1019
+ "description": "The original text content of this test or step as found in the source file.",
1020
+ "readOnly": true
1021
+ },
1022
+ "isInline": {
1023
+ "type": "boolean",
1024
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
1025
+ "default": false,
1026
+ "readOnly": true
1027
+ },
1028
+ "isAutoDetected": {
1029
+ "type": "boolean",
1030
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
1031
+ "default": false,
1032
+ "readOnly": true
1033
+ },
1034
+ "commentFormat": {
1035
+ "type": "string",
1036
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
1037
+ "enum": [
1038
+ "htmlComment",
1039
+ "jsxComment",
1040
+ "linkReference"
1041
+ ],
1042
+ "readOnly": true
1043
+ }
1044
+ },
1045
+ "examples": [
1046
+ {
1047
+ "file": "/path/to/docs/getting-started.md",
1048
+ "startLine": 42,
1049
+ "endLine": 45,
1050
+ "startColumn": 1,
1051
+ "endColumn": 3,
1052
+ "startOffset": 1250,
1053
+ "endOffset": 1350,
1054
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
1055
+ "isInline": true,
1056
+ "isAutoDetected": false,
1057
+ "commentFormat": "htmlComment"
1058
+ },
1059
+ {
1060
+ "file": "/path/to/docs/tutorial.md",
1061
+ "startLine": 78,
1062
+ "endLine": 78,
1063
+ "startColumn": 1,
1064
+ "endColumn": 45,
1065
+ "startOffset": 2100,
1066
+ "endOffset": 2145,
1067
+ "originalText": "[example link](https://example.com)",
1068
+ "isInline": true,
1069
+ "isAutoDetected": true,
1070
+ "commentFormat": "htmlComment"
1071
+ }
1072
+ ]
1073
+ },
862
1074
  "description": {
863
1075
  "type": "string",
864
1076
  "description": "Description of the step."
@@ -919,6 +1131,112 @@
919
1131
  "type": "string",
920
1132
  "description": "ID of the step."
921
1133
  },
1134
+ "sourceLocation": {
1135
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
1136
+ "$schema": "http://json-schema.org/draft-07/schema#",
1137
+ "title": "sourceLocation",
1138
+ "type": "object",
1139
+ "readOnly": true,
1140
+ "additionalProperties": false,
1141
+ "properties": {
1142
+ "file": {
1143
+ "type": "string",
1144
+ "description": "Absolute path to the source file containing this test or step.",
1145
+ "readOnly": true
1146
+ },
1147
+ "startLine": {
1148
+ "type": "integer",
1149
+ "description": "1-based line number where this test or step starts.",
1150
+ "minimum": 1,
1151
+ "readOnly": true
1152
+ },
1153
+ "endLine": {
1154
+ "type": "integer",
1155
+ "description": "1-based line number where this test or step ends.",
1156
+ "minimum": 1,
1157
+ "readOnly": true
1158
+ },
1159
+ "startColumn": {
1160
+ "type": "integer",
1161
+ "description": "1-based column number where this test or step starts on startLine.",
1162
+ "minimum": 1,
1163
+ "readOnly": true
1164
+ },
1165
+ "endColumn": {
1166
+ "type": "integer",
1167
+ "description": "1-based column number where this test or step ends on endLine.",
1168
+ "minimum": 1,
1169
+ "readOnly": true
1170
+ },
1171
+ "startOffset": {
1172
+ "type": "integer",
1173
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
1174
+ "minimum": 0,
1175
+ "readOnly": true
1176
+ },
1177
+ "endOffset": {
1178
+ "type": "integer",
1179
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
1180
+ "minimum": 0,
1181
+ "readOnly": true
1182
+ },
1183
+ "originalText": {
1184
+ "type": "string",
1185
+ "description": "The original text content of this test or step as found in the source file.",
1186
+ "readOnly": true
1187
+ },
1188
+ "isInline": {
1189
+ "type": "boolean",
1190
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
1191
+ "default": false,
1192
+ "readOnly": true
1193
+ },
1194
+ "isAutoDetected": {
1195
+ "type": "boolean",
1196
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
1197
+ "default": false,
1198
+ "readOnly": true
1199
+ },
1200
+ "commentFormat": {
1201
+ "type": "string",
1202
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
1203
+ "enum": [
1204
+ "htmlComment",
1205
+ "jsxComment",
1206
+ "linkReference"
1207
+ ],
1208
+ "readOnly": true
1209
+ }
1210
+ },
1211
+ "examples": [
1212
+ {
1213
+ "file": "/path/to/docs/getting-started.md",
1214
+ "startLine": 42,
1215
+ "endLine": 45,
1216
+ "startColumn": 1,
1217
+ "endColumn": 3,
1218
+ "startOffset": 1250,
1219
+ "endOffset": 1350,
1220
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
1221
+ "isInline": true,
1222
+ "isAutoDetected": false,
1223
+ "commentFormat": "htmlComment"
1224
+ },
1225
+ {
1226
+ "file": "/path/to/docs/tutorial.md",
1227
+ "startLine": 78,
1228
+ "endLine": 78,
1229
+ "startColumn": 1,
1230
+ "endColumn": 45,
1231
+ "startOffset": 2100,
1232
+ "endOffset": 2145,
1233
+ "originalText": "[example link](https://example.com)",
1234
+ "isInline": true,
1235
+ "isAutoDetected": true,
1236
+ "commentFormat": "htmlComment"
1237
+ }
1238
+ ]
1239
+ },
922
1240
  "description": {
923
1241
  "type": "string",
924
1242
  "description": "Description of the step."
@@ -1135,6 +1453,112 @@
1135
1453
  "type": "string",
1136
1454
  "description": "ID of the step."
1137
1455
  },
1456
+ "sourceLocation": {
1457
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
1458
+ "$schema": "http://json-schema.org/draft-07/schema#",
1459
+ "title": "sourceLocation",
1460
+ "type": "object",
1461
+ "readOnly": true,
1462
+ "additionalProperties": false,
1463
+ "properties": {
1464
+ "file": {
1465
+ "type": "string",
1466
+ "description": "Absolute path to the source file containing this test or step.",
1467
+ "readOnly": true
1468
+ },
1469
+ "startLine": {
1470
+ "type": "integer",
1471
+ "description": "1-based line number where this test or step starts.",
1472
+ "minimum": 1,
1473
+ "readOnly": true
1474
+ },
1475
+ "endLine": {
1476
+ "type": "integer",
1477
+ "description": "1-based line number where this test or step ends.",
1478
+ "minimum": 1,
1479
+ "readOnly": true
1480
+ },
1481
+ "startColumn": {
1482
+ "type": "integer",
1483
+ "description": "1-based column number where this test or step starts on startLine.",
1484
+ "minimum": 1,
1485
+ "readOnly": true
1486
+ },
1487
+ "endColumn": {
1488
+ "type": "integer",
1489
+ "description": "1-based column number where this test or step ends on endLine.",
1490
+ "minimum": 1,
1491
+ "readOnly": true
1492
+ },
1493
+ "startOffset": {
1494
+ "type": "integer",
1495
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
1496
+ "minimum": 0,
1497
+ "readOnly": true
1498
+ },
1499
+ "endOffset": {
1500
+ "type": "integer",
1501
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
1502
+ "minimum": 0,
1503
+ "readOnly": true
1504
+ },
1505
+ "originalText": {
1506
+ "type": "string",
1507
+ "description": "The original text content of this test or step as found in the source file.",
1508
+ "readOnly": true
1509
+ },
1510
+ "isInline": {
1511
+ "type": "boolean",
1512
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
1513
+ "default": false,
1514
+ "readOnly": true
1515
+ },
1516
+ "isAutoDetected": {
1517
+ "type": "boolean",
1518
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
1519
+ "default": false,
1520
+ "readOnly": true
1521
+ },
1522
+ "commentFormat": {
1523
+ "type": "string",
1524
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
1525
+ "enum": [
1526
+ "htmlComment",
1527
+ "jsxComment",
1528
+ "linkReference"
1529
+ ],
1530
+ "readOnly": true
1531
+ }
1532
+ },
1533
+ "examples": [
1534
+ {
1535
+ "file": "/path/to/docs/getting-started.md",
1536
+ "startLine": 42,
1537
+ "endLine": 45,
1538
+ "startColumn": 1,
1539
+ "endColumn": 3,
1540
+ "startOffset": 1250,
1541
+ "endOffset": 1350,
1542
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
1543
+ "isInline": true,
1544
+ "isAutoDetected": false,
1545
+ "commentFormat": "htmlComment"
1546
+ },
1547
+ {
1548
+ "file": "/path/to/docs/tutorial.md",
1549
+ "startLine": 78,
1550
+ "endLine": 78,
1551
+ "startColumn": 1,
1552
+ "endColumn": 45,
1553
+ "startOffset": 2100,
1554
+ "endOffset": 2145,
1555
+ "originalText": "[example link](https://example.com)",
1556
+ "isInline": true,
1557
+ "isAutoDetected": true,
1558
+ "commentFormat": "htmlComment"
1559
+ }
1560
+ ]
1561
+ },
1138
1562
  "description": {
1139
1563
  "type": "string",
1140
1564
  "description": "Description of the step."
@@ -1458,6 +1882,112 @@
1458
1882
  "type": "string",
1459
1883
  "description": "ID of the step."
1460
1884
  },
1885
+ "sourceLocation": {
1886
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
1887
+ "$schema": "http://json-schema.org/draft-07/schema#",
1888
+ "title": "sourceLocation",
1889
+ "type": "object",
1890
+ "readOnly": true,
1891
+ "additionalProperties": false,
1892
+ "properties": {
1893
+ "file": {
1894
+ "type": "string",
1895
+ "description": "Absolute path to the source file containing this test or step.",
1896
+ "readOnly": true
1897
+ },
1898
+ "startLine": {
1899
+ "type": "integer",
1900
+ "description": "1-based line number where this test or step starts.",
1901
+ "minimum": 1,
1902
+ "readOnly": true
1903
+ },
1904
+ "endLine": {
1905
+ "type": "integer",
1906
+ "description": "1-based line number where this test or step ends.",
1907
+ "minimum": 1,
1908
+ "readOnly": true
1909
+ },
1910
+ "startColumn": {
1911
+ "type": "integer",
1912
+ "description": "1-based column number where this test or step starts on startLine.",
1913
+ "minimum": 1,
1914
+ "readOnly": true
1915
+ },
1916
+ "endColumn": {
1917
+ "type": "integer",
1918
+ "description": "1-based column number where this test or step ends on endLine.",
1919
+ "minimum": 1,
1920
+ "readOnly": true
1921
+ },
1922
+ "startOffset": {
1923
+ "type": "integer",
1924
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
1925
+ "minimum": 0,
1926
+ "readOnly": true
1927
+ },
1928
+ "endOffset": {
1929
+ "type": "integer",
1930
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
1931
+ "minimum": 0,
1932
+ "readOnly": true
1933
+ },
1934
+ "originalText": {
1935
+ "type": "string",
1936
+ "description": "The original text content of this test or step as found in the source file.",
1937
+ "readOnly": true
1938
+ },
1939
+ "isInline": {
1940
+ "type": "boolean",
1941
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
1942
+ "default": false,
1943
+ "readOnly": true
1944
+ },
1945
+ "isAutoDetected": {
1946
+ "type": "boolean",
1947
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
1948
+ "default": false,
1949
+ "readOnly": true
1950
+ },
1951
+ "commentFormat": {
1952
+ "type": "string",
1953
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
1954
+ "enum": [
1955
+ "htmlComment",
1956
+ "jsxComment",
1957
+ "linkReference"
1958
+ ],
1959
+ "readOnly": true
1960
+ }
1961
+ },
1962
+ "examples": [
1963
+ {
1964
+ "file": "/path/to/docs/getting-started.md",
1965
+ "startLine": 42,
1966
+ "endLine": 45,
1967
+ "startColumn": 1,
1968
+ "endColumn": 3,
1969
+ "startOffset": 1250,
1970
+ "endOffset": 1350,
1971
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
1972
+ "isInline": true,
1973
+ "isAutoDetected": false,
1974
+ "commentFormat": "htmlComment"
1975
+ },
1976
+ {
1977
+ "file": "/path/to/docs/tutorial.md",
1978
+ "startLine": 78,
1979
+ "endLine": 78,
1980
+ "startColumn": 1,
1981
+ "endColumn": 45,
1982
+ "startOffset": 2100,
1983
+ "endOffset": 2145,
1984
+ "originalText": "[example link](https://example.com)",
1985
+ "isInline": true,
1986
+ "isAutoDetected": true,
1987
+ "commentFormat": "htmlComment"
1988
+ }
1989
+ ]
1990
+ },
1461
1991
  "description": {
1462
1992
  "type": "string",
1463
1993
  "description": "Description of the step."
@@ -2878,6 +3408,112 @@
2878
3408
  "type": "string",
2879
3409
  "description": "ID of the step."
2880
3410
  },
3411
+ "sourceLocation": {
3412
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
3413
+ "$schema": "http://json-schema.org/draft-07/schema#",
3414
+ "title": "sourceLocation",
3415
+ "type": "object",
3416
+ "readOnly": true,
3417
+ "additionalProperties": false,
3418
+ "properties": {
3419
+ "file": {
3420
+ "type": "string",
3421
+ "description": "Absolute path to the source file containing this test or step.",
3422
+ "readOnly": true
3423
+ },
3424
+ "startLine": {
3425
+ "type": "integer",
3426
+ "description": "1-based line number where this test or step starts.",
3427
+ "minimum": 1,
3428
+ "readOnly": true
3429
+ },
3430
+ "endLine": {
3431
+ "type": "integer",
3432
+ "description": "1-based line number where this test or step ends.",
3433
+ "minimum": 1,
3434
+ "readOnly": true
3435
+ },
3436
+ "startColumn": {
3437
+ "type": "integer",
3438
+ "description": "1-based column number where this test or step starts on startLine.",
3439
+ "minimum": 1,
3440
+ "readOnly": true
3441
+ },
3442
+ "endColumn": {
3443
+ "type": "integer",
3444
+ "description": "1-based column number where this test or step ends on endLine.",
3445
+ "minimum": 1,
3446
+ "readOnly": true
3447
+ },
3448
+ "startOffset": {
3449
+ "type": "integer",
3450
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
3451
+ "minimum": 0,
3452
+ "readOnly": true
3453
+ },
3454
+ "endOffset": {
3455
+ "type": "integer",
3456
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
3457
+ "minimum": 0,
3458
+ "readOnly": true
3459
+ },
3460
+ "originalText": {
3461
+ "type": "string",
3462
+ "description": "The original text content of this test or step as found in the source file.",
3463
+ "readOnly": true
3464
+ },
3465
+ "isInline": {
3466
+ "type": "boolean",
3467
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
3468
+ "default": false,
3469
+ "readOnly": true
3470
+ },
3471
+ "isAutoDetected": {
3472
+ "type": "boolean",
3473
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
3474
+ "default": false,
3475
+ "readOnly": true
3476
+ },
3477
+ "commentFormat": {
3478
+ "type": "string",
3479
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
3480
+ "enum": [
3481
+ "htmlComment",
3482
+ "jsxComment",
3483
+ "linkReference"
3484
+ ],
3485
+ "readOnly": true
3486
+ }
3487
+ },
3488
+ "examples": [
3489
+ {
3490
+ "file": "/path/to/docs/getting-started.md",
3491
+ "startLine": 42,
3492
+ "endLine": 45,
3493
+ "startColumn": 1,
3494
+ "endColumn": 3,
3495
+ "startOffset": 1250,
3496
+ "endOffset": 1350,
3497
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
3498
+ "isInline": true,
3499
+ "isAutoDetected": false,
3500
+ "commentFormat": "htmlComment"
3501
+ },
3502
+ {
3503
+ "file": "/path/to/docs/tutorial.md",
3504
+ "startLine": 78,
3505
+ "endLine": 78,
3506
+ "startColumn": 1,
3507
+ "endColumn": 45,
3508
+ "startOffset": 2100,
3509
+ "endOffset": 2145,
3510
+ "originalText": "[example link](https://example.com)",
3511
+ "isInline": true,
3512
+ "isAutoDetected": true,
3513
+ "commentFormat": "htmlComment"
3514
+ }
3515
+ ]
3516
+ },
2881
3517
  "description": {
2882
3518
  "type": "string",
2883
3519
  "description": "Description of the step."
@@ -3368,6 +4004,112 @@
3368
4004
  "type": "string",
3369
4005
  "description": "ID of the step."
3370
4006
  },
4007
+ "sourceLocation": {
4008
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
4009
+ "$schema": "http://json-schema.org/draft-07/schema#",
4010
+ "title": "sourceLocation",
4011
+ "type": "object",
4012
+ "readOnly": true,
4013
+ "additionalProperties": false,
4014
+ "properties": {
4015
+ "file": {
4016
+ "type": "string",
4017
+ "description": "Absolute path to the source file containing this test or step.",
4018
+ "readOnly": true
4019
+ },
4020
+ "startLine": {
4021
+ "type": "integer",
4022
+ "description": "1-based line number where this test or step starts.",
4023
+ "minimum": 1,
4024
+ "readOnly": true
4025
+ },
4026
+ "endLine": {
4027
+ "type": "integer",
4028
+ "description": "1-based line number where this test or step ends.",
4029
+ "minimum": 1,
4030
+ "readOnly": true
4031
+ },
4032
+ "startColumn": {
4033
+ "type": "integer",
4034
+ "description": "1-based column number where this test or step starts on startLine.",
4035
+ "minimum": 1,
4036
+ "readOnly": true
4037
+ },
4038
+ "endColumn": {
4039
+ "type": "integer",
4040
+ "description": "1-based column number where this test or step ends on endLine.",
4041
+ "minimum": 1,
4042
+ "readOnly": true
4043
+ },
4044
+ "startOffset": {
4045
+ "type": "integer",
4046
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
4047
+ "minimum": 0,
4048
+ "readOnly": true
4049
+ },
4050
+ "endOffset": {
4051
+ "type": "integer",
4052
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
4053
+ "minimum": 0,
4054
+ "readOnly": true
4055
+ },
4056
+ "originalText": {
4057
+ "type": "string",
4058
+ "description": "The original text content of this test or step as found in the source file.",
4059
+ "readOnly": true
4060
+ },
4061
+ "isInline": {
4062
+ "type": "boolean",
4063
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
4064
+ "default": false,
4065
+ "readOnly": true
4066
+ },
4067
+ "isAutoDetected": {
4068
+ "type": "boolean",
4069
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
4070
+ "default": false,
4071
+ "readOnly": true
4072
+ },
4073
+ "commentFormat": {
4074
+ "type": "string",
4075
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
4076
+ "enum": [
4077
+ "htmlComment",
4078
+ "jsxComment",
4079
+ "linkReference"
4080
+ ],
4081
+ "readOnly": true
4082
+ }
4083
+ },
4084
+ "examples": [
4085
+ {
4086
+ "file": "/path/to/docs/getting-started.md",
4087
+ "startLine": 42,
4088
+ "endLine": 45,
4089
+ "startColumn": 1,
4090
+ "endColumn": 3,
4091
+ "startOffset": 1250,
4092
+ "endOffset": 1350,
4093
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
4094
+ "isInline": true,
4095
+ "isAutoDetected": false,
4096
+ "commentFormat": "htmlComment"
4097
+ },
4098
+ {
4099
+ "file": "/path/to/docs/tutorial.md",
4100
+ "startLine": 78,
4101
+ "endLine": 78,
4102
+ "startColumn": 1,
4103
+ "endColumn": 45,
4104
+ "startOffset": 2100,
4105
+ "endOffset": 2145,
4106
+ "originalText": "[example link](https://example.com)",
4107
+ "isInline": true,
4108
+ "isAutoDetected": true,
4109
+ "commentFormat": "htmlComment"
4110
+ }
4111
+ ]
4112
+ },
3371
4113
  "description": {
3372
4114
  "type": "string",
3373
4115
  "description": "Description of the step."
@@ -4433,14 +5175,120 @@
4433
5175
  "type": "string",
4434
5176
  "description": "ID of the step."
4435
5177
  },
4436
- "description": {
4437
- "type": "string",
4438
- "description": "Description of the step."
4439
- },
4440
- "unsafe": {
4441
- "type": "boolean",
4442
- "description": "Whether or not the step may be unsafe. Unsafe steps may perform actions that could modify the system or environment in unexpected ways. Unsafe steps are only performed within Docker containers or if unsafe steps are enabled with the `allowUnsafeSteps` config property or the `--allow-unsafe` flag.",
4443
- "default": false
5178
+ "sourceLocation": {
5179
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
5180
+ "$schema": "http://json-schema.org/draft-07/schema#",
5181
+ "title": "sourceLocation",
5182
+ "type": "object",
5183
+ "readOnly": true,
5184
+ "additionalProperties": false,
5185
+ "properties": {
5186
+ "file": {
5187
+ "type": "string",
5188
+ "description": "Absolute path to the source file containing this test or step.",
5189
+ "readOnly": true
5190
+ },
5191
+ "startLine": {
5192
+ "type": "integer",
5193
+ "description": "1-based line number where this test or step starts.",
5194
+ "minimum": 1,
5195
+ "readOnly": true
5196
+ },
5197
+ "endLine": {
5198
+ "type": "integer",
5199
+ "description": "1-based line number where this test or step ends.",
5200
+ "minimum": 1,
5201
+ "readOnly": true
5202
+ },
5203
+ "startColumn": {
5204
+ "type": "integer",
5205
+ "description": "1-based column number where this test or step starts on startLine.",
5206
+ "minimum": 1,
5207
+ "readOnly": true
5208
+ },
5209
+ "endColumn": {
5210
+ "type": "integer",
5211
+ "description": "1-based column number where this test or step ends on endLine.",
5212
+ "minimum": 1,
5213
+ "readOnly": true
5214
+ },
5215
+ "startOffset": {
5216
+ "type": "integer",
5217
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
5218
+ "minimum": 0,
5219
+ "readOnly": true
5220
+ },
5221
+ "endOffset": {
5222
+ "type": "integer",
5223
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
5224
+ "minimum": 0,
5225
+ "readOnly": true
5226
+ },
5227
+ "originalText": {
5228
+ "type": "string",
5229
+ "description": "The original text content of this test or step as found in the source file.",
5230
+ "readOnly": true
5231
+ },
5232
+ "isInline": {
5233
+ "type": "boolean",
5234
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
5235
+ "default": false,
5236
+ "readOnly": true
5237
+ },
5238
+ "isAutoDetected": {
5239
+ "type": "boolean",
5240
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
5241
+ "default": false,
5242
+ "readOnly": true
5243
+ },
5244
+ "commentFormat": {
5245
+ "type": "string",
5246
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
5247
+ "enum": [
5248
+ "htmlComment",
5249
+ "jsxComment",
5250
+ "linkReference"
5251
+ ],
5252
+ "readOnly": true
5253
+ }
5254
+ },
5255
+ "examples": [
5256
+ {
5257
+ "file": "/path/to/docs/getting-started.md",
5258
+ "startLine": 42,
5259
+ "endLine": 45,
5260
+ "startColumn": 1,
5261
+ "endColumn": 3,
5262
+ "startOffset": 1250,
5263
+ "endOffset": 1350,
5264
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
5265
+ "isInline": true,
5266
+ "isAutoDetected": false,
5267
+ "commentFormat": "htmlComment"
5268
+ },
5269
+ {
5270
+ "file": "/path/to/docs/tutorial.md",
5271
+ "startLine": 78,
5272
+ "endLine": 78,
5273
+ "startColumn": 1,
5274
+ "endColumn": 45,
5275
+ "startOffset": 2100,
5276
+ "endOffset": 2145,
5277
+ "originalText": "[example link](https://example.com)",
5278
+ "isInline": true,
5279
+ "isAutoDetected": true,
5280
+ "commentFormat": "htmlComment"
5281
+ }
5282
+ ]
5283
+ },
5284
+ "description": {
5285
+ "type": "string",
5286
+ "description": "Description of the step."
5287
+ },
5288
+ "unsafe": {
5289
+ "type": "boolean",
5290
+ "description": "Whether or not the step may be unsafe. Unsafe steps may perform actions that could modify the system or environment in unexpected ways. Unsafe steps are only performed within Docker containers or if unsafe steps are enabled with the `allowUnsafeSteps` config property or the `--allow-unsafe` flag.",
5291
+ "default": false
4444
5292
  },
4445
5293
  "outputs": {
4446
5294
  "type": "object",
@@ -4740,6 +5588,112 @@
4740
5588
  "type": "string",
4741
5589
  "description": "ID of the step."
4742
5590
  },
5591
+ "sourceLocation": {
5592
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
5593
+ "$schema": "http://json-schema.org/draft-07/schema#",
5594
+ "title": "sourceLocation",
5595
+ "type": "object",
5596
+ "readOnly": true,
5597
+ "additionalProperties": false,
5598
+ "properties": {
5599
+ "file": {
5600
+ "type": "string",
5601
+ "description": "Absolute path to the source file containing this test or step.",
5602
+ "readOnly": true
5603
+ },
5604
+ "startLine": {
5605
+ "type": "integer",
5606
+ "description": "1-based line number where this test or step starts.",
5607
+ "minimum": 1,
5608
+ "readOnly": true
5609
+ },
5610
+ "endLine": {
5611
+ "type": "integer",
5612
+ "description": "1-based line number where this test or step ends.",
5613
+ "minimum": 1,
5614
+ "readOnly": true
5615
+ },
5616
+ "startColumn": {
5617
+ "type": "integer",
5618
+ "description": "1-based column number where this test or step starts on startLine.",
5619
+ "minimum": 1,
5620
+ "readOnly": true
5621
+ },
5622
+ "endColumn": {
5623
+ "type": "integer",
5624
+ "description": "1-based column number where this test or step ends on endLine.",
5625
+ "minimum": 1,
5626
+ "readOnly": true
5627
+ },
5628
+ "startOffset": {
5629
+ "type": "integer",
5630
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
5631
+ "minimum": 0,
5632
+ "readOnly": true
5633
+ },
5634
+ "endOffset": {
5635
+ "type": "integer",
5636
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
5637
+ "minimum": 0,
5638
+ "readOnly": true
5639
+ },
5640
+ "originalText": {
5641
+ "type": "string",
5642
+ "description": "The original text content of this test or step as found in the source file.",
5643
+ "readOnly": true
5644
+ },
5645
+ "isInline": {
5646
+ "type": "boolean",
5647
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
5648
+ "default": false,
5649
+ "readOnly": true
5650
+ },
5651
+ "isAutoDetected": {
5652
+ "type": "boolean",
5653
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
5654
+ "default": false,
5655
+ "readOnly": true
5656
+ },
5657
+ "commentFormat": {
5658
+ "type": "string",
5659
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
5660
+ "enum": [
5661
+ "htmlComment",
5662
+ "jsxComment",
5663
+ "linkReference"
5664
+ ],
5665
+ "readOnly": true
5666
+ }
5667
+ },
5668
+ "examples": [
5669
+ {
5670
+ "file": "/path/to/docs/getting-started.md",
5671
+ "startLine": 42,
5672
+ "endLine": 45,
5673
+ "startColumn": 1,
5674
+ "endColumn": 3,
5675
+ "startOffset": 1250,
5676
+ "endOffset": 1350,
5677
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
5678
+ "isInline": true,
5679
+ "isAutoDetected": false,
5680
+ "commentFormat": "htmlComment"
5681
+ },
5682
+ {
5683
+ "file": "/path/to/docs/tutorial.md",
5684
+ "startLine": 78,
5685
+ "endLine": 78,
5686
+ "startColumn": 1,
5687
+ "endColumn": 45,
5688
+ "startOffset": 2100,
5689
+ "endOffset": 2145,
5690
+ "originalText": "[example link](https://example.com)",
5691
+ "isInline": true,
5692
+ "isAutoDetected": true,
5693
+ "commentFormat": "htmlComment"
5694
+ }
5695
+ ]
5696
+ },
4743
5697
  "description": {
4744
5698
  "type": "string",
4745
5699
  "description": "Description of the step."
@@ -5033,6 +5987,112 @@
5033
5987
  "type": "string",
5034
5988
  "description": "ID of the step."
5035
5989
  },
5990
+ "sourceLocation": {
5991
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
5992
+ "$schema": "http://json-schema.org/draft-07/schema#",
5993
+ "title": "sourceLocation",
5994
+ "type": "object",
5995
+ "readOnly": true,
5996
+ "additionalProperties": false,
5997
+ "properties": {
5998
+ "file": {
5999
+ "type": "string",
6000
+ "description": "Absolute path to the source file containing this test or step.",
6001
+ "readOnly": true
6002
+ },
6003
+ "startLine": {
6004
+ "type": "integer",
6005
+ "description": "1-based line number where this test or step starts.",
6006
+ "minimum": 1,
6007
+ "readOnly": true
6008
+ },
6009
+ "endLine": {
6010
+ "type": "integer",
6011
+ "description": "1-based line number where this test or step ends.",
6012
+ "minimum": 1,
6013
+ "readOnly": true
6014
+ },
6015
+ "startColumn": {
6016
+ "type": "integer",
6017
+ "description": "1-based column number where this test or step starts on startLine.",
6018
+ "minimum": 1,
6019
+ "readOnly": true
6020
+ },
6021
+ "endColumn": {
6022
+ "type": "integer",
6023
+ "description": "1-based column number where this test or step ends on endLine.",
6024
+ "minimum": 1,
6025
+ "readOnly": true
6026
+ },
6027
+ "startOffset": {
6028
+ "type": "integer",
6029
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
6030
+ "minimum": 0,
6031
+ "readOnly": true
6032
+ },
6033
+ "endOffset": {
6034
+ "type": "integer",
6035
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
6036
+ "minimum": 0,
6037
+ "readOnly": true
6038
+ },
6039
+ "originalText": {
6040
+ "type": "string",
6041
+ "description": "The original text content of this test or step as found in the source file.",
6042
+ "readOnly": true
6043
+ },
6044
+ "isInline": {
6045
+ "type": "boolean",
6046
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
6047
+ "default": false,
6048
+ "readOnly": true
6049
+ },
6050
+ "isAutoDetected": {
6051
+ "type": "boolean",
6052
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
6053
+ "default": false,
6054
+ "readOnly": true
6055
+ },
6056
+ "commentFormat": {
6057
+ "type": "string",
6058
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
6059
+ "enum": [
6060
+ "htmlComment",
6061
+ "jsxComment",
6062
+ "linkReference"
6063
+ ],
6064
+ "readOnly": true
6065
+ }
6066
+ },
6067
+ "examples": [
6068
+ {
6069
+ "file": "/path/to/docs/getting-started.md",
6070
+ "startLine": 42,
6071
+ "endLine": 45,
6072
+ "startColumn": 1,
6073
+ "endColumn": 3,
6074
+ "startOffset": 1250,
6075
+ "endOffset": 1350,
6076
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
6077
+ "isInline": true,
6078
+ "isAutoDetected": false,
6079
+ "commentFormat": "htmlComment"
6080
+ },
6081
+ {
6082
+ "file": "/path/to/docs/tutorial.md",
6083
+ "startLine": 78,
6084
+ "endLine": 78,
6085
+ "startColumn": 1,
6086
+ "endColumn": 45,
6087
+ "startOffset": 2100,
6088
+ "endOffset": 2145,
6089
+ "originalText": "[example link](https://example.com)",
6090
+ "isInline": true,
6091
+ "isAutoDetected": true,
6092
+ "commentFormat": "htmlComment"
6093
+ }
6094
+ ]
6095
+ },
5036
6096
  "description": {
5037
6097
  "type": "string",
5038
6098
  "description": "Description of the step."
@@ -5348,6 +6408,112 @@
5348
6408
  "type": "string",
5349
6409
  "description": "ID of the step."
5350
6410
  },
6411
+ "sourceLocation": {
6412
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
6413
+ "$schema": "http://json-schema.org/draft-07/schema#",
6414
+ "title": "sourceLocation",
6415
+ "type": "object",
6416
+ "readOnly": true,
6417
+ "additionalProperties": false,
6418
+ "properties": {
6419
+ "file": {
6420
+ "type": "string",
6421
+ "description": "Absolute path to the source file containing this test or step.",
6422
+ "readOnly": true
6423
+ },
6424
+ "startLine": {
6425
+ "type": "integer",
6426
+ "description": "1-based line number where this test or step starts.",
6427
+ "minimum": 1,
6428
+ "readOnly": true
6429
+ },
6430
+ "endLine": {
6431
+ "type": "integer",
6432
+ "description": "1-based line number where this test or step ends.",
6433
+ "minimum": 1,
6434
+ "readOnly": true
6435
+ },
6436
+ "startColumn": {
6437
+ "type": "integer",
6438
+ "description": "1-based column number where this test or step starts on startLine.",
6439
+ "minimum": 1,
6440
+ "readOnly": true
6441
+ },
6442
+ "endColumn": {
6443
+ "type": "integer",
6444
+ "description": "1-based column number where this test or step ends on endLine.",
6445
+ "minimum": 1,
6446
+ "readOnly": true
6447
+ },
6448
+ "startOffset": {
6449
+ "type": "integer",
6450
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
6451
+ "minimum": 0,
6452
+ "readOnly": true
6453
+ },
6454
+ "endOffset": {
6455
+ "type": "integer",
6456
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
6457
+ "minimum": 0,
6458
+ "readOnly": true
6459
+ },
6460
+ "originalText": {
6461
+ "type": "string",
6462
+ "description": "The original text content of this test or step as found in the source file.",
6463
+ "readOnly": true
6464
+ },
6465
+ "isInline": {
6466
+ "type": "boolean",
6467
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
6468
+ "default": false,
6469
+ "readOnly": true
6470
+ },
6471
+ "isAutoDetected": {
6472
+ "type": "boolean",
6473
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
6474
+ "default": false,
6475
+ "readOnly": true
6476
+ },
6477
+ "commentFormat": {
6478
+ "type": "string",
6479
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
6480
+ "enum": [
6481
+ "htmlComment",
6482
+ "jsxComment",
6483
+ "linkReference"
6484
+ ],
6485
+ "readOnly": true
6486
+ }
6487
+ },
6488
+ "examples": [
6489
+ {
6490
+ "file": "/path/to/docs/getting-started.md",
6491
+ "startLine": 42,
6492
+ "endLine": 45,
6493
+ "startColumn": 1,
6494
+ "endColumn": 3,
6495
+ "startOffset": 1250,
6496
+ "endOffset": 1350,
6497
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
6498
+ "isInline": true,
6499
+ "isAutoDetected": false,
6500
+ "commentFormat": "htmlComment"
6501
+ },
6502
+ {
6503
+ "file": "/path/to/docs/tutorial.md",
6504
+ "startLine": 78,
6505
+ "endLine": 78,
6506
+ "startColumn": 1,
6507
+ "endColumn": 45,
6508
+ "startOffset": 2100,
6509
+ "endOffset": 2145,
6510
+ "originalText": "[example link](https://example.com)",
6511
+ "isInline": true,
6512
+ "isAutoDetected": true,
6513
+ "commentFormat": "htmlComment"
6514
+ }
6515
+ ]
6516
+ },
5351
6517
  "description": {
5352
6518
  "type": "string",
5353
6519
  "description": "Description of the step."
@@ -6000,6 +7166,112 @@
6000
7166
  "type": "string",
6001
7167
  "description": "ID of the step."
6002
7168
  },
7169
+ "sourceLocation": {
7170
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
7171
+ "$schema": "http://json-schema.org/draft-07/schema#",
7172
+ "title": "sourceLocation",
7173
+ "type": "object",
7174
+ "readOnly": true,
7175
+ "additionalProperties": false,
7176
+ "properties": {
7177
+ "file": {
7178
+ "type": "string",
7179
+ "description": "Absolute path to the source file containing this test or step.",
7180
+ "readOnly": true
7181
+ },
7182
+ "startLine": {
7183
+ "type": "integer",
7184
+ "description": "1-based line number where this test or step starts.",
7185
+ "minimum": 1,
7186
+ "readOnly": true
7187
+ },
7188
+ "endLine": {
7189
+ "type": "integer",
7190
+ "description": "1-based line number where this test or step ends.",
7191
+ "minimum": 1,
7192
+ "readOnly": true
7193
+ },
7194
+ "startColumn": {
7195
+ "type": "integer",
7196
+ "description": "1-based column number where this test or step starts on startLine.",
7197
+ "minimum": 1,
7198
+ "readOnly": true
7199
+ },
7200
+ "endColumn": {
7201
+ "type": "integer",
7202
+ "description": "1-based column number where this test or step ends on endLine.",
7203
+ "minimum": 1,
7204
+ "readOnly": true
7205
+ },
7206
+ "startOffset": {
7207
+ "type": "integer",
7208
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
7209
+ "minimum": 0,
7210
+ "readOnly": true
7211
+ },
7212
+ "endOffset": {
7213
+ "type": "integer",
7214
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
7215
+ "minimum": 0,
7216
+ "readOnly": true
7217
+ },
7218
+ "originalText": {
7219
+ "type": "string",
7220
+ "description": "The original text content of this test or step as found in the source file.",
7221
+ "readOnly": true
7222
+ },
7223
+ "isInline": {
7224
+ "type": "boolean",
7225
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
7226
+ "default": false,
7227
+ "readOnly": true
7228
+ },
7229
+ "isAutoDetected": {
7230
+ "type": "boolean",
7231
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
7232
+ "default": false,
7233
+ "readOnly": true
7234
+ },
7235
+ "commentFormat": {
7236
+ "type": "string",
7237
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
7238
+ "enum": [
7239
+ "htmlComment",
7240
+ "jsxComment",
7241
+ "linkReference"
7242
+ ],
7243
+ "readOnly": true
7244
+ }
7245
+ },
7246
+ "examples": [
7247
+ {
7248
+ "file": "/path/to/docs/getting-started.md",
7249
+ "startLine": 42,
7250
+ "endLine": 45,
7251
+ "startColumn": 1,
7252
+ "endColumn": 3,
7253
+ "startOffset": 1250,
7254
+ "endOffset": 1350,
7255
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
7256
+ "isInline": true,
7257
+ "isAutoDetected": false,
7258
+ "commentFormat": "htmlComment"
7259
+ },
7260
+ {
7261
+ "file": "/path/to/docs/tutorial.md",
7262
+ "startLine": 78,
7263
+ "endLine": 78,
7264
+ "startColumn": 1,
7265
+ "endColumn": 45,
7266
+ "startOffset": 2100,
7267
+ "endOffset": 2145,
7268
+ "originalText": "[example link](https://example.com)",
7269
+ "isInline": true,
7270
+ "isAutoDetected": true,
7271
+ "commentFormat": "htmlComment"
7272
+ }
7273
+ ]
7274
+ },
6003
7275
  "description": {
6004
7276
  "type": "string",
6005
7277
  "description": "Description of the step."
@@ -6316,6 +7588,112 @@
6316
7588
  "type": "string",
6317
7589
  "description": "ID of the step."
6318
7590
  },
7591
+ "sourceLocation": {
7592
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
7593
+ "$schema": "http://json-schema.org/draft-07/schema#",
7594
+ "title": "sourceLocation",
7595
+ "type": "object",
7596
+ "readOnly": true,
7597
+ "additionalProperties": false,
7598
+ "properties": {
7599
+ "file": {
7600
+ "type": "string",
7601
+ "description": "Absolute path to the source file containing this test or step.",
7602
+ "readOnly": true
7603
+ },
7604
+ "startLine": {
7605
+ "type": "integer",
7606
+ "description": "1-based line number where this test or step starts.",
7607
+ "minimum": 1,
7608
+ "readOnly": true
7609
+ },
7610
+ "endLine": {
7611
+ "type": "integer",
7612
+ "description": "1-based line number where this test or step ends.",
7613
+ "minimum": 1,
7614
+ "readOnly": true
7615
+ },
7616
+ "startColumn": {
7617
+ "type": "integer",
7618
+ "description": "1-based column number where this test or step starts on startLine.",
7619
+ "minimum": 1,
7620
+ "readOnly": true
7621
+ },
7622
+ "endColumn": {
7623
+ "type": "integer",
7624
+ "description": "1-based column number where this test or step ends on endLine.",
7625
+ "minimum": 1,
7626
+ "readOnly": true
7627
+ },
7628
+ "startOffset": {
7629
+ "type": "integer",
7630
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
7631
+ "minimum": 0,
7632
+ "readOnly": true
7633
+ },
7634
+ "endOffset": {
7635
+ "type": "integer",
7636
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
7637
+ "minimum": 0,
7638
+ "readOnly": true
7639
+ },
7640
+ "originalText": {
7641
+ "type": "string",
7642
+ "description": "The original text content of this test or step as found in the source file.",
7643
+ "readOnly": true
7644
+ },
7645
+ "isInline": {
7646
+ "type": "boolean",
7647
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
7648
+ "default": false,
7649
+ "readOnly": true
7650
+ },
7651
+ "isAutoDetected": {
7652
+ "type": "boolean",
7653
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
7654
+ "default": false,
7655
+ "readOnly": true
7656
+ },
7657
+ "commentFormat": {
7658
+ "type": "string",
7659
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
7660
+ "enum": [
7661
+ "htmlComment",
7662
+ "jsxComment",
7663
+ "linkReference"
7664
+ ],
7665
+ "readOnly": true
7666
+ }
7667
+ },
7668
+ "examples": [
7669
+ {
7670
+ "file": "/path/to/docs/getting-started.md",
7671
+ "startLine": 42,
7672
+ "endLine": 45,
7673
+ "startColumn": 1,
7674
+ "endColumn": 3,
7675
+ "startOffset": 1250,
7676
+ "endOffset": 1350,
7677
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
7678
+ "isInline": true,
7679
+ "isAutoDetected": false,
7680
+ "commentFormat": "htmlComment"
7681
+ },
7682
+ {
7683
+ "file": "/path/to/docs/tutorial.md",
7684
+ "startLine": 78,
7685
+ "endLine": 78,
7686
+ "startColumn": 1,
7687
+ "endColumn": 45,
7688
+ "startOffset": 2100,
7689
+ "endOffset": 2145,
7690
+ "originalText": "[example link](https://example.com)",
7691
+ "isInline": true,
7692
+ "isAutoDetected": true,
7693
+ "commentFormat": "htmlComment"
7694
+ }
7695
+ ]
7696
+ },
6319
7697
  "description": {
6320
7698
  "type": "string",
6321
7699
  "description": "Description of the step."
@@ -6488,6 +7866,112 @@
6488
7866
  "type": "string",
6489
7867
  "description": "ID of the step."
6490
7868
  },
7869
+ "sourceLocation": {
7870
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
7871
+ "$schema": "http://json-schema.org/draft-07/schema#",
7872
+ "title": "sourceLocation",
7873
+ "type": "object",
7874
+ "readOnly": true,
7875
+ "additionalProperties": false,
7876
+ "properties": {
7877
+ "file": {
7878
+ "type": "string",
7879
+ "description": "Absolute path to the source file containing this test or step.",
7880
+ "readOnly": true
7881
+ },
7882
+ "startLine": {
7883
+ "type": "integer",
7884
+ "description": "1-based line number where this test or step starts.",
7885
+ "minimum": 1,
7886
+ "readOnly": true
7887
+ },
7888
+ "endLine": {
7889
+ "type": "integer",
7890
+ "description": "1-based line number where this test or step ends.",
7891
+ "minimum": 1,
7892
+ "readOnly": true
7893
+ },
7894
+ "startColumn": {
7895
+ "type": "integer",
7896
+ "description": "1-based column number where this test or step starts on startLine.",
7897
+ "minimum": 1,
7898
+ "readOnly": true
7899
+ },
7900
+ "endColumn": {
7901
+ "type": "integer",
7902
+ "description": "1-based column number where this test or step ends on endLine.",
7903
+ "minimum": 1,
7904
+ "readOnly": true
7905
+ },
7906
+ "startOffset": {
7907
+ "type": "integer",
7908
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
7909
+ "minimum": 0,
7910
+ "readOnly": true
7911
+ },
7912
+ "endOffset": {
7913
+ "type": "integer",
7914
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
7915
+ "minimum": 0,
7916
+ "readOnly": true
7917
+ },
7918
+ "originalText": {
7919
+ "type": "string",
7920
+ "description": "The original text content of this test or step as found in the source file.",
7921
+ "readOnly": true
7922
+ },
7923
+ "isInline": {
7924
+ "type": "boolean",
7925
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
7926
+ "default": false,
7927
+ "readOnly": true
7928
+ },
7929
+ "isAutoDetected": {
7930
+ "type": "boolean",
7931
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
7932
+ "default": false,
7933
+ "readOnly": true
7934
+ },
7935
+ "commentFormat": {
7936
+ "type": "string",
7937
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
7938
+ "enum": [
7939
+ "htmlComment",
7940
+ "jsxComment",
7941
+ "linkReference"
7942
+ ],
7943
+ "readOnly": true
7944
+ }
7945
+ },
7946
+ "examples": [
7947
+ {
7948
+ "file": "/path/to/docs/getting-started.md",
7949
+ "startLine": 42,
7950
+ "endLine": 45,
7951
+ "startColumn": 1,
7952
+ "endColumn": 3,
7953
+ "startOffset": 1250,
7954
+ "endOffset": 1350,
7955
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
7956
+ "isInline": true,
7957
+ "isAutoDetected": false,
7958
+ "commentFormat": "htmlComment"
7959
+ },
7960
+ {
7961
+ "file": "/path/to/docs/tutorial.md",
7962
+ "startLine": 78,
7963
+ "endLine": 78,
7964
+ "startColumn": 1,
7965
+ "endColumn": 45,
7966
+ "startOffset": 2100,
7967
+ "endOffset": 2145,
7968
+ "originalText": "[example link](https://example.com)",
7969
+ "isInline": true,
7970
+ "isAutoDetected": true,
7971
+ "commentFormat": "htmlComment"
7972
+ }
7973
+ ]
7974
+ },
6491
7975
  "description": {
6492
7976
  "type": "string",
6493
7977
  "description": "Description of the step."
@@ -6573,6 +8057,112 @@
6573
8057
  "type": "string",
6574
8058
  "description": "ID of the step."
6575
8059
  },
8060
+ "sourceLocation": {
8061
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
8062
+ "$schema": "http://json-schema.org/draft-07/schema#",
8063
+ "title": "sourceLocation",
8064
+ "type": "object",
8065
+ "readOnly": true,
8066
+ "additionalProperties": false,
8067
+ "properties": {
8068
+ "file": {
8069
+ "type": "string",
8070
+ "description": "Absolute path to the source file containing this test or step.",
8071
+ "readOnly": true
8072
+ },
8073
+ "startLine": {
8074
+ "type": "integer",
8075
+ "description": "1-based line number where this test or step starts.",
8076
+ "minimum": 1,
8077
+ "readOnly": true
8078
+ },
8079
+ "endLine": {
8080
+ "type": "integer",
8081
+ "description": "1-based line number where this test or step ends.",
8082
+ "minimum": 1,
8083
+ "readOnly": true
8084
+ },
8085
+ "startColumn": {
8086
+ "type": "integer",
8087
+ "description": "1-based column number where this test or step starts on startLine.",
8088
+ "minimum": 1,
8089
+ "readOnly": true
8090
+ },
8091
+ "endColumn": {
8092
+ "type": "integer",
8093
+ "description": "1-based column number where this test or step ends on endLine.",
8094
+ "minimum": 1,
8095
+ "readOnly": true
8096
+ },
8097
+ "startOffset": {
8098
+ "type": "integer",
8099
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
8100
+ "minimum": 0,
8101
+ "readOnly": true
8102
+ },
8103
+ "endOffset": {
8104
+ "type": "integer",
8105
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
8106
+ "minimum": 0,
8107
+ "readOnly": true
8108
+ },
8109
+ "originalText": {
8110
+ "type": "string",
8111
+ "description": "The original text content of this test or step as found in the source file.",
8112
+ "readOnly": true
8113
+ },
8114
+ "isInline": {
8115
+ "type": "boolean",
8116
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
8117
+ "default": false,
8118
+ "readOnly": true
8119
+ },
8120
+ "isAutoDetected": {
8121
+ "type": "boolean",
8122
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
8123
+ "default": false,
8124
+ "readOnly": true
8125
+ },
8126
+ "commentFormat": {
8127
+ "type": "string",
8128
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
8129
+ "enum": [
8130
+ "htmlComment",
8131
+ "jsxComment",
8132
+ "linkReference"
8133
+ ],
8134
+ "readOnly": true
8135
+ }
8136
+ },
8137
+ "examples": [
8138
+ {
8139
+ "file": "/path/to/docs/getting-started.md",
8140
+ "startLine": 42,
8141
+ "endLine": 45,
8142
+ "startColumn": 1,
8143
+ "endColumn": 3,
8144
+ "startOffset": 1250,
8145
+ "endOffset": 1350,
8146
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
8147
+ "isInline": true,
8148
+ "isAutoDetected": false,
8149
+ "commentFormat": "htmlComment"
8150
+ },
8151
+ {
8152
+ "file": "/path/to/docs/tutorial.md",
8153
+ "startLine": 78,
8154
+ "endLine": 78,
8155
+ "startColumn": 1,
8156
+ "endColumn": 45,
8157
+ "startOffset": 2100,
8158
+ "endOffset": 2145,
8159
+ "originalText": "[example link](https://example.com)",
8160
+ "isInline": true,
8161
+ "isAutoDetected": true,
8162
+ "commentFormat": "htmlComment"
8163
+ }
8164
+ ]
8165
+ },
6576
8166
  "description": {
6577
8167
  "type": "string",
6578
8168
  "description": "Description of the step."
@@ -6649,10 +8239,116 @@
6649
8239
  "https://raw.githubusercontent.com/doc-detective/common/refs/heads/main/dist/schemas/step_v3.schema.json"
6650
8240
  ]
6651
8241
  },
6652
- "stepId": {
6653
- "type": "string",
6654
- "description": "ID of the step."
6655
- },
8242
+ "stepId": {
8243
+ "type": "string",
8244
+ "description": "ID of the step."
8245
+ },
8246
+ "sourceLocation": {
8247
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
8248
+ "$schema": "http://json-schema.org/draft-07/schema#",
8249
+ "title": "sourceLocation",
8250
+ "type": "object",
8251
+ "readOnly": true,
8252
+ "additionalProperties": false,
8253
+ "properties": {
8254
+ "file": {
8255
+ "type": "string",
8256
+ "description": "Absolute path to the source file containing this test or step.",
8257
+ "readOnly": true
8258
+ },
8259
+ "startLine": {
8260
+ "type": "integer",
8261
+ "description": "1-based line number where this test or step starts.",
8262
+ "minimum": 1,
8263
+ "readOnly": true
8264
+ },
8265
+ "endLine": {
8266
+ "type": "integer",
8267
+ "description": "1-based line number where this test or step ends.",
8268
+ "minimum": 1,
8269
+ "readOnly": true
8270
+ },
8271
+ "startColumn": {
8272
+ "type": "integer",
8273
+ "description": "1-based column number where this test or step starts on startLine.",
8274
+ "minimum": 1,
8275
+ "readOnly": true
8276
+ },
8277
+ "endColumn": {
8278
+ "type": "integer",
8279
+ "description": "1-based column number where this test or step ends on endLine.",
8280
+ "minimum": 1,
8281
+ "readOnly": true
8282
+ },
8283
+ "startOffset": {
8284
+ "type": "integer",
8285
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
8286
+ "minimum": 0,
8287
+ "readOnly": true
8288
+ },
8289
+ "endOffset": {
8290
+ "type": "integer",
8291
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
8292
+ "minimum": 0,
8293
+ "readOnly": true
8294
+ },
8295
+ "originalText": {
8296
+ "type": "string",
8297
+ "description": "The original text content of this test or step as found in the source file.",
8298
+ "readOnly": true
8299
+ },
8300
+ "isInline": {
8301
+ "type": "boolean",
8302
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
8303
+ "default": false,
8304
+ "readOnly": true
8305
+ },
8306
+ "isAutoDetected": {
8307
+ "type": "boolean",
8308
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
8309
+ "default": false,
8310
+ "readOnly": true
8311
+ },
8312
+ "commentFormat": {
8313
+ "type": "string",
8314
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
8315
+ "enum": [
8316
+ "htmlComment",
8317
+ "jsxComment",
8318
+ "linkReference"
8319
+ ],
8320
+ "readOnly": true
8321
+ }
8322
+ },
8323
+ "examples": [
8324
+ {
8325
+ "file": "/path/to/docs/getting-started.md",
8326
+ "startLine": 42,
8327
+ "endLine": 45,
8328
+ "startColumn": 1,
8329
+ "endColumn": 3,
8330
+ "startOffset": 1250,
8331
+ "endOffset": 1350,
8332
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
8333
+ "isInline": true,
8334
+ "isAutoDetected": false,
8335
+ "commentFormat": "htmlComment"
8336
+ },
8337
+ {
8338
+ "file": "/path/to/docs/tutorial.md",
8339
+ "startLine": 78,
8340
+ "endLine": 78,
8341
+ "startColumn": 1,
8342
+ "endColumn": 45,
8343
+ "startOffset": 2100,
8344
+ "endOffset": 2145,
8345
+ "originalText": "[example link](https://example.com)",
8346
+ "isInline": true,
8347
+ "isAutoDetected": true,
8348
+ "commentFormat": "htmlComment"
8349
+ }
8350
+ ]
8351
+ },
6656
8352
  "description": {
6657
8353
  "type": "string",
6658
8354
  "description": "Description of the step."
@@ -7220,6 +8916,112 @@
7220
8916
  "type": "string",
7221
8917
  "description": "ID of the step."
7222
8918
  },
8919
+ "sourceLocation": {
8920
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
8921
+ "$schema": "http://json-schema.org/draft-07/schema#",
8922
+ "title": "sourceLocation",
8923
+ "type": "object",
8924
+ "readOnly": true,
8925
+ "additionalProperties": false,
8926
+ "properties": {
8927
+ "file": {
8928
+ "type": "string",
8929
+ "description": "Absolute path to the source file containing this test or step.",
8930
+ "readOnly": true
8931
+ },
8932
+ "startLine": {
8933
+ "type": "integer",
8934
+ "description": "1-based line number where this test or step starts.",
8935
+ "minimum": 1,
8936
+ "readOnly": true
8937
+ },
8938
+ "endLine": {
8939
+ "type": "integer",
8940
+ "description": "1-based line number where this test or step ends.",
8941
+ "minimum": 1,
8942
+ "readOnly": true
8943
+ },
8944
+ "startColumn": {
8945
+ "type": "integer",
8946
+ "description": "1-based column number where this test or step starts on startLine.",
8947
+ "minimum": 1,
8948
+ "readOnly": true
8949
+ },
8950
+ "endColumn": {
8951
+ "type": "integer",
8952
+ "description": "1-based column number where this test or step ends on endLine.",
8953
+ "minimum": 1,
8954
+ "readOnly": true
8955
+ },
8956
+ "startOffset": {
8957
+ "type": "integer",
8958
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
8959
+ "minimum": 0,
8960
+ "readOnly": true
8961
+ },
8962
+ "endOffset": {
8963
+ "type": "integer",
8964
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
8965
+ "minimum": 0,
8966
+ "readOnly": true
8967
+ },
8968
+ "originalText": {
8969
+ "type": "string",
8970
+ "description": "The original text content of this test or step as found in the source file.",
8971
+ "readOnly": true
8972
+ },
8973
+ "isInline": {
8974
+ "type": "boolean",
8975
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
8976
+ "default": false,
8977
+ "readOnly": true
8978
+ },
8979
+ "isAutoDetected": {
8980
+ "type": "boolean",
8981
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
8982
+ "default": false,
8983
+ "readOnly": true
8984
+ },
8985
+ "commentFormat": {
8986
+ "type": "string",
8987
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
8988
+ "enum": [
8989
+ "htmlComment",
8990
+ "jsxComment",
8991
+ "linkReference"
8992
+ ],
8993
+ "readOnly": true
8994
+ }
8995
+ },
8996
+ "examples": [
8997
+ {
8998
+ "file": "/path/to/docs/getting-started.md",
8999
+ "startLine": 42,
9000
+ "endLine": 45,
9001
+ "startColumn": 1,
9002
+ "endColumn": 3,
9003
+ "startOffset": 1250,
9004
+ "endOffset": 1350,
9005
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
9006
+ "isInline": true,
9007
+ "isAutoDetected": false,
9008
+ "commentFormat": "htmlComment"
9009
+ },
9010
+ {
9011
+ "file": "/path/to/docs/tutorial.md",
9012
+ "startLine": 78,
9013
+ "endLine": 78,
9014
+ "startColumn": 1,
9015
+ "endColumn": 45,
9016
+ "startOffset": 2100,
9017
+ "endOffset": 2145,
9018
+ "originalText": "[example link](https://example.com)",
9019
+ "isInline": true,
9020
+ "isAutoDetected": true,
9021
+ "commentFormat": "htmlComment"
9022
+ }
9023
+ ]
9024
+ },
7223
9025
  "description": {
7224
9026
  "type": "string",
7225
9027
  "description": "Description of the step."
@@ -7519,6 +9321,112 @@
7519
9321
  "type": "string",
7520
9322
  "description": "ID of the step."
7521
9323
  },
9324
+ "sourceLocation": {
9325
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
9326
+ "$schema": "http://json-schema.org/draft-07/schema#",
9327
+ "title": "sourceLocation",
9328
+ "type": "object",
9329
+ "readOnly": true,
9330
+ "additionalProperties": false,
9331
+ "properties": {
9332
+ "file": {
9333
+ "type": "string",
9334
+ "description": "Absolute path to the source file containing this test or step.",
9335
+ "readOnly": true
9336
+ },
9337
+ "startLine": {
9338
+ "type": "integer",
9339
+ "description": "1-based line number where this test or step starts.",
9340
+ "minimum": 1,
9341
+ "readOnly": true
9342
+ },
9343
+ "endLine": {
9344
+ "type": "integer",
9345
+ "description": "1-based line number where this test or step ends.",
9346
+ "minimum": 1,
9347
+ "readOnly": true
9348
+ },
9349
+ "startColumn": {
9350
+ "type": "integer",
9351
+ "description": "1-based column number where this test or step starts on startLine.",
9352
+ "minimum": 1,
9353
+ "readOnly": true
9354
+ },
9355
+ "endColumn": {
9356
+ "type": "integer",
9357
+ "description": "1-based column number where this test or step ends on endLine.",
9358
+ "minimum": 1,
9359
+ "readOnly": true
9360
+ },
9361
+ "startOffset": {
9362
+ "type": "integer",
9363
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
9364
+ "minimum": 0,
9365
+ "readOnly": true
9366
+ },
9367
+ "endOffset": {
9368
+ "type": "integer",
9369
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
9370
+ "minimum": 0,
9371
+ "readOnly": true
9372
+ },
9373
+ "originalText": {
9374
+ "type": "string",
9375
+ "description": "The original text content of this test or step as found in the source file.",
9376
+ "readOnly": true
9377
+ },
9378
+ "isInline": {
9379
+ "type": "boolean",
9380
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
9381
+ "default": false,
9382
+ "readOnly": true
9383
+ },
9384
+ "isAutoDetected": {
9385
+ "type": "boolean",
9386
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
9387
+ "default": false,
9388
+ "readOnly": true
9389
+ },
9390
+ "commentFormat": {
9391
+ "type": "string",
9392
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
9393
+ "enum": [
9394
+ "htmlComment",
9395
+ "jsxComment",
9396
+ "linkReference"
9397
+ ],
9398
+ "readOnly": true
9399
+ }
9400
+ },
9401
+ "examples": [
9402
+ {
9403
+ "file": "/path/to/docs/getting-started.md",
9404
+ "startLine": 42,
9405
+ "endLine": 45,
9406
+ "startColumn": 1,
9407
+ "endColumn": 3,
9408
+ "startOffset": 1250,
9409
+ "endOffset": 1350,
9410
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
9411
+ "isInline": true,
9412
+ "isAutoDetected": false,
9413
+ "commentFormat": "htmlComment"
9414
+ },
9415
+ {
9416
+ "file": "/path/to/docs/tutorial.md",
9417
+ "startLine": 78,
9418
+ "endLine": 78,
9419
+ "startColumn": 1,
9420
+ "endColumn": 45,
9421
+ "startOffset": 2100,
9422
+ "endOffset": 2145,
9423
+ "originalText": "[example link](https://example.com)",
9424
+ "isInline": true,
9425
+ "isAutoDetected": true,
9426
+ "commentFormat": "htmlComment"
9427
+ }
9428
+ ]
9429
+ },
7522
9430
  "description": {
7523
9431
  "type": "string",
7524
9432
  "description": "Description of the step."
@@ -8486,6 +10394,30 @@
8486
10394
  }
8487
10395
  },
8488
10396
  "title": "Doc Detective Orchestration API"
10397
+ },
10398
+ "anthropic": {
10399
+ "type": "object",
10400
+ "description": "Configuration for Anthropic AI integration.",
10401
+ "additionalProperties": false,
10402
+ "properties": {
10403
+ "apiKey": {
10404
+ "type": "string",
10405
+ "description": "API key for authenticating with Anthropic."
10406
+ }
10407
+ },
10408
+ "title": "Anthropic"
10409
+ },
10410
+ "openAi": {
10411
+ "type": "object",
10412
+ "description": "Configuration for OpenAI integration.",
10413
+ "additionalProperties": false,
10414
+ "properties": {
10415
+ "apiKey": {
10416
+ "type": "string",
10417
+ "description": "API key for authenticating with OpenAI."
10418
+ }
10419
+ },
10420
+ "title": "OpenAI"
8489
10421
  }
8490
10422
  },
8491
10423
  "title": "Integrations options"
@@ -8715,6 +10647,112 @@
8715
10647
  "type": "string",
8716
10648
  "description": "ID of the step."
8717
10649
  },
10650
+ "sourceLocation": {
10651
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
10652
+ "$schema": "http://json-schema.org/draft-07/schema#",
10653
+ "title": "sourceLocation",
10654
+ "type": "object",
10655
+ "readOnly": true,
10656
+ "additionalProperties": false,
10657
+ "properties": {
10658
+ "file": {
10659
+ "type": "string",
10660
+ "description": "Absolute path to the source file containing this test or step.",
10661
+ "readOnly": true
10662
+ },
10663
+ "startLine": {
10664
+ "type": "integer",
10665
+ "description": "1-based line number where this test or step starts.",
10666
+ "minimum": 1,
10667
+ "readOnly": true
10668
+ },
10669
+ "endLine": {
10670
+ "type": "integer",
10671
+ "description": "1-based line number where this test or step ends.",
10672
+ "minimum": 1,
10673
+ "readOnly": true
10674
+ },
10675
+ "startColumn": {
10676
+ "type": "integer",
10677
+ "description": "1-based column number where this test or step starts on startLine.",
10678
+ "minimum": 1,
10679
+ "readOnly": true
10680
+ },
10681
+ "endColumn": {
10682
+ "type": "integer",
10683
+ "description": "1-based column number where this test or step ends on endLine.",
10684
+ "minimum": 1,
10685
+ "readOnly": true
10686
+ },
10687
+ "startOffset": {
10688
+ "type": "integer",
10689
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
10690
+ "minimum": 0,
10691
+ "readOnly": true
10692
+ },
10693
+ "endOffset": {
10694
+ "type": "integer",
10695
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
10696
+ "minimum": 0,
10697
+ "readOnly": true
10698
+ },
10699
+ "originalText": {
10700
+ "type": "string",
10701
+ "description": "The original text content of this test or step as found in the source file.",
10702
+ "readOnly": true
10703
+ },
10704
+ "isInline": {
10705
+ "type": "boolean",
10706
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
10707
+ "default": false,
10708
+ "readOnly": true
10709
+ },
10710
+ "isAutoDetected": {
10711
+ "type": "boolean",
10712
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
10713
+ "default": false,
10714
+ "readOnly": true
10715
+ },
10716
+ "commentFormat": {
10717
+ "type": "string",
10718
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
10719
+ "enum": [
10720
+ "htmlComment",
10721
+ "jsxComment",
10722
+ "linkReference"
10723
+ ],
10724
+ "readOnly": true
10725
+ }
10726
+ },
10727
+ "examples": [
10728
+ {
10729
+ "file": "/path/to/docs/getting-started.md",
10730
+ "startLine": 42,
10731
+ "endLine": 45,
10732
+ "startColumn": 1,
10733
+ "endColumn": 3,
10734
+ "startOffset": 1250,
10735
+ "endOffset": 1350,
10736
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
10737
+ "isInline": true,
10738
+ "isAutoDetected": false,
10739
+ "commentFormat": "htmlComment"
10740
+ },
10741
+ {
10742
+ "file": "/path/to/docs/tutorial.md",
10743
+ "startLine": 78,
10744
+ "endLine": 78,
10745
+ "startColumn": 1,
10746
+ "endColumn": 45,
10747
+ "startOffset": 2100,
10748
+ "endOffset": 2145,
10749
+ "originalText": "[example link](https://example.com)",
10750
+ "isInline": true,
10751
+ "isAutoDetected": true,
10752
+ "commentFormat": "htmlComment"
10753
+ }
10754
+ ]
10755
+ },
8718
10756
  "description": {
8719
10757
  "type": "string",
8720
10758
  "description": "Description of the step."
@@ -8767,6 +10805,112 @@
8767
10805
  "type": "string",
8768
10806
  "description": "ID of the step."
8769
10807
  },
10808
+ "sourceLocation": {
10809
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
10810
+ "$schema": "http://json-schema.org/draft-07/schema#",
10811
+ "title": "sourceLocation",
10812
+ "type": "object",
10813
+ "readOnly": true,
10814
+ "additionalProperties": false,
10815
+ "properties": {
10816
+ "file": {
10817
+ "type": "string",
10818
+ "description": "Absolute path to the source file containing this test or step.",
10819
+ "readOnly": true
10820
+ },
10821
+ "startLine": {
10822
+ "type": "integer",
10823
+ "description": "1-based line number where this test or step starts.",
10824
+ "minimum": 1,
10825
+ "readOnly": true
10826
+ },
10827
+ "endLine": {
10828
+ "type": "integer",
10829
+ "description": "1-based line number where this test or step ends.",
10830
+ "minimum": 1,
10831
+ "readOnly": true
10832
+ },
10833
+ "startColumn": {
10834
+ "type": "integer",
10835
+ "description": "1-based column number where this test or step starts on startLine.",
10836
+ "minimum": 1,
10837
+ "readOnly": true
10838
+ },
10839
+ "endColumn": {
10840
+ "type": "integer",
10841
+ "description": "1-based column number where this test or step ends on endLine.",
10842
+ "minimum": 1,
10843
+ "readOnly": true
10844
+ },
10845
+ "startOffset": {
10846
+ "type": "integer",
10847
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
10848
+ "minimum": 0,
10849
+ "readOnly": true
10850
+ },
10851
+ "endOffset": {
10852
+ "type": "integer",
10853
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
10854
+ "minimum": 0,
10855
+ "readOnly": true
10856
+ },
10857
+ "originalText": {
10858
+ "type": "string",
10859
+ "description": "The original text content of this test or step as found in the source file.",
10860
+ "readOnly": true
10861
+ },
10862
+ "isInline": {
10863
+ "type": "boolean",
10864
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
10865
+ "default": false,
10866
+ "readOnly": true
10867
+ },
10868
+ "isAutoDetected": {
10869
+ "type": "boolean",
10870
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
10871
+ "default": false,
10872
+ "readOnly": true
10873
+ },
10874
+ "commentFormat": {
10875
+ "type": "string",
10876
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
10877
+ "enum": [
10878
+ "htmlComment",
10879
+ "jsxComment",
10880
+ "linkReference"
10881
+ ],
10882
+ "readOnly": true
10883
+ }
10884
+ },
10885
+ "examples": [
10886
+ {
10887
+ "file": "/path/to/docs/getting-started.md",
10888
+ "startLine": 42,
10889
+ "endLine": 45,
10890
+ "startColumn": 1,
10891
+ "endColumn": 3,
10892
+ "startOffset": 1250,
10893
+ "endOffset": 1350,
10894
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
10895
+ "isInline": true,
10896
+ "isAutoDetected": false,
10897
+ "commentFormat": "htmlComment"
10898
+ },
10899
+ {
10900
+ "file": "/path/to/docs/tutorial.md",
10901
+ "startLine": 78,
10902
+ "endLine": 78,
10903
+ "startColumn": 1,
10904
+ "endColumn": 45,
10905
+ "startOffset": 2100,
10906
+ "endOffset": 2145,
10907
+ "originalText": "[example link](https://example.com)",
10908
+ "isInline": true,
10909
+ "isAutoDetected": true,
10910
+ "commentFormat": "htmlComment"
10911
+ }
10912
+ ]
10913
+ },
8770
10914
  "description": {
8771
10915
  "type": "string",
8772
10916
  "description": "Description of the step."
@@ -8827,6 +10971,112 @@
8827
10971
  "type": "string",
8828
10972
  "description": "ID of the step."
8829
10973
  },
10974
+ "sourceLocation": {
10975
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
10976
+ "$schema": "http://json-schema.org/draft-07/schema#",
10977
+ "title": "sourceLocation",
10978
+ "type": "object",
10979
+ "readOnly": true,
10980
+ "additionalProperties": false,
10981
+ "properties": {
10982
+ "file": {
10983
+ "type": "string",
10984
+ "description": "Absolute path to the source file containing this test or step.",
10985
+ "readOnly": true
10986
+ },
10987
+ "startLine": {
10988
+ "type": "integer",
10989
+ "description": "1-based line number where this test or step starts.",
10990
+ "minimum": 1,
10991
+ "readOnly": true
10992
+ },
10993
+ "endLine": {
10994
+ "type": "integer",
10995
+ "description": "1-based line number where this test or step ends.",
10996
+ "minimum": 1,
10997
+ "readOnly": true
10998
+ },
10999
+ "startColumn": {
11000
+ "type": "integer",
11001
+ "description": "1-based column number where this test or step starts on startLine.",
11002
+ "minimum": 1,
11003
+ "readOnly": true
11004
+ },
11005
+ "endColumn": {
11006
+ "type": "integer",
11007
+ "description": "1-based column number where this test or step ends on endLine.",
11008
+ "minimum": 1,
11009
+ "readOnly": true
11010
+ },
11011
+ "startOffset": {
11012
+ "type": "integer",
11013
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
11014
+ "minimum": 0,
11015
+ "readOnly": true
11016
+ },
11017
+ "endOffset": {
11018
+ "type": "integer",
11019
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
11020
+ "minimum": 0,
11021
+ "readOnly": true
11022
+ },
11023
+ "originalText": {
11024
+ "type": "string",
11025
+ "description": "The original text content of this test or step as found in the source file.",
11026
+ "readOnly": true
11027
+ },
11028
+ "isInline": {
11029
+ "type": "boolean",
11030
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
11031
+ "default": false,
11032
+ "readOnly": true
11033
+ },
11034
+ "isAutoDetected": {
11035
+ "type": "boolean",
11036
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
11037
+ "default": false,
11038
+ "readOnly": true
11039
+ },
11040
+ "commentFormat": {
11041
+ "type": "string",
11042
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
11043
+ "enum": [
11044
+ "htmlComment",
11045
+ "jsxComment",
11046
+ "linkReference"
11047
+ ],
11048
+ "readOnly": true
11049
+ }
11050
+ },
11051
+ "examples": [
11052
+ {
11053
+ "file": "/path/to/docs/getting-started.md",
11054
+ "startLine": 42,
11055
+ "endLine": 45,
11056
+ "startColumn": 1,
11057
+ "endColumn": 3,
11058
+ "startOffset": 1250,
11059
+ "endOffset": 1350,
11060
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
11061
+ "isInline": true,
11062
+ "isAutoDetected": false,
11063
+ "commentFormat": "htmlComment"
11064
+ },
11065
+ {
11066
+ "file": "/path/to/docs/tutorial.md",
11067
+ "startLine": 78,
11068
+ "endLine": 78,
11069
+ "startColumn": 1,
11070
+ "endColumn": 45,
11071
+ "startOffset": 2100,
11072
+ "endOffset": 2145,
11073
+ "originalText": "[example link](https://example.com)",
11074
+ "isInline": true,
11075
+ "isAutoDetected": true,
11076
+ "commentFormat": "htmlComment"
11077
+ }
11078
+ ]
11079
+ },
8830
11080
  "description": {
8831
11081
  "type": "string",
8832
11082
  "description": "Description of the step."
@@ -9018,30 +11268,136 @@
9018
11268
  ]
9019
11269
  }
9020
11270
  ]
9021
- }
9022
- },
9023
- "title": "checkLink"
9024
- }
9025
- ]
9026
- },
9027
- {
9028
- "allOf": [
9029
- {
9030
- "type": "object",
9031
- "dynamicDefaults": {
9032
- "stepId": "uuid"
9033
- },
9034
- "properties": {
9035
- "$schema": {
9036
- "description": "JSON Schema for this object.",
9037
- "type": "string",
9038
- "enum": [
9039
- "https://raw.githubusercontent.com/doc-detective/common/refs/heads/main/dist/schemas/step_v3.schema.json"
9040
- ]
9041
- },
9042
- "stepId": {
9043
- "type": "string",
9044
- "description": "ID of the step."
11271
+ }
11272
+ },
11273
+ "title": "checkLink"
11274
+ }
11275
+ ]
11276
+ },
11277
+ {
11278
+ "allOf": [
11279
+ {
11280
+ "type": "object",
11281
+ "dynamicDefaults": {
11282
+ "stepId": "uuid"
11283
+ },
11284
+ "properties": {
11285
+ "$schema": {
11286
+ "description": "JSON Schema for this object.",
11287
+ "type": "string",
11288
+ "enum": [
11289
+ "https://raw.githubusercontent.com/doc-detective/common/refs/heads/main/dist/schemas/step_v3.schema.json"
11290
+ ]
11291
+ },
11292
+ "stepId": {
11293
+ "type": "string",
11294
+ "description": "ID of the step."
11295
+ },
11296
+ "sourceLocation": {
11297
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
11298
+ "$schema": "http://json-schema.org/draft-07/schema#",
11299
+ "title": "sourceLocation",
11300
+ "type": "object",
11301
+ "readOnly": true,
11302
+ "additionalProperties": false,
11303
+ "properties": {
11304
+ "file": {
11305
+ "type": "string",
11306
+ "description": "Absolute path to the source file containing this test or step.",
11307
+ "readOnly": true
11308
+ },
11309
+ "startLine": {
11310
+ "type": "integer",
11311
+ "description": "1-based line number where this test or step starts.",
11312
+ "minimum": 1,
11313
+ "readOnly": true
11314
+ },
11315
+ "endLine": {
11316
+ "type": "integer",
11317
+ "description": "1-based line number where this test or step ends.",
11318
+ "minimum": 1,
11319
+ "readOnly": true
11320
+ },
11321
+ "startColumn": {
11322
+ "type": "integer",
11323
+ "description": "1-based column number where this test or step starts on startLine.",
11324
+ "minimum": 1,
11325
+ "readOnly": true
11326
+ },
11327
+ "endColumn": {
11328
+ "type": "integer",
11329
+ "description": "1-based column number where this test or step ends on endLine.",
11330
+ "minimum": 1,
11331
+ "readOnly": true
11332
+ },
11333
+ "startOffset": {
11334
+ "type": "integer",
11335
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
11336
+ "minimum": 0,
11337
+ "readOnly": true
11338
+ },
11339
+ "endOffset": {
11340
+ "type": "integer",
11341
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
11342
+ "minimum": 0,
11343
+ "readOnly": true
11344
+ },
11345
+ "originalText": {
11346
+ "type": "string",
11347
+ "description": "The original text content of this test or step as found in the source file.",
11348
+ "readOnly": true
11349
+ },
11350
+ "isInline": {
11351
+ "type": "boolean",
11352
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
11353
+ "default": false,
11354
+ "readOnly": true
11355
+ },
11356
+ "isAutoDetected": {
11357
+ "type": "boolean",
11358
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
11359
+ "default": false,
11360
+ "readOnly": true
11361
+ },
11362
+ "commentFormat": {
11363
+ "type": "string",
11364
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
11365
+ "enum": [
11366
+ "htmlComment",
11367
+ "jsxComment",
11368
+ "linkReference"
11369
+ ],
11370
+ "readOnly": true
11371
+ }
11372
+ },
11373
+ "examples": [
11374
+ {
11375
+ "file": "/path/to/docs/getting-started.md",
11376
+ "startLine": 42,
11377
+ "endLine": 45,
11378
+ "startColumn": 1,
11379
+ "endColumn": 3,
11380
+ "startOffset": 1250,
11381
+ "endOffset": 1350,
11382
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
11383
+ "isInline": true,
11384
+ "isAutoDetected": false,
11385
+ "commentFormat": "htmlComment"
11386
+ },
11387
+ {
11388
+ "file": "/path/to/docs/tutorial.md",
11389
+ "startLine": 78,
11390
+ "endLine": 78,
11391
+ "startColumn": 1,
11392
+ "endColumn": 45,
11393
+ "startOffset": 2100,
11394
+ "endOffset": 2145,
11395
+ "originalText": "[example link](https://example.com)",
11396
+ "isInline": true,
11397
+ "isAutoDetected": true,
11398
+ "commentFormat": "htmlComment"
11399
+ }
11400
+ ]
9045
11401
  },
9046
11402
  "description": {
9047
11403
  "type": "string",
@@ -9366,6 +11722,112 @@
9366
11722
  "type": "string",
9367
11723
  "description": "ID of the step."
9368
11724
  },
11725
+ "sourceLocation": {
11726
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
11727
+ "$schema": "http://json-schema.org/draft-07/schema#",
11728
+ "title": "sourceLocation",
11729
+ "type": "object",
11730
+ "readOnly": true,
11731
+ "additionalProperties": false,
11732
+ "properties": {
11733
+ "file": {
11734
+ "type": "string",
11735
+ "description": "Absolute path to the source file containing this test or step.",
11736
+ "readOnly": true
11737
+ },
11738
+ "startLine": {
11739
+ "type": "integer",
11740
+ "description": "1-based line number where this test or step starts.",
11741
+ "minimum": 1,
11742
+ "readOnly": true
11743
+ },
11744
+ "endLine": {
11745
+ "type": "integer",
11746
+ "description": "1-based line number where this test or step ends.",
11747
+ "minimum": 1,
11748
+ "readOnly": true
11749
+ },
11750
+ "startColumn": {
11751
+ "type": "integer",
11752
+ "description": "1-based column number where this test or step starts on startLine.",
11753
+ "minimum": 1,
11754
+ "readOnly": true
11755
+ },
11756
+ "endColumn": {
11757
+ "type": "integer",
11758
+ "description": "1-based column number where this test or step ends on endLine.",
11759
+ "minimum": 1,
11760
+ "readOnly": true
11761
+ },
11762
+ "startOffset": {
11763
+ "type": "integer",
11764
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
11765
+ "minimum": 0,
11766
+ "readOnly": true
11767
+ },
11768
+ "endOffset": {
11769
+ "type": "integer",
11770
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
11771
+ "minimum": 0,
11772
+ "readOnly": true
11773
+ },
11774
+ "originalText": {
11775
+ "type": "string",
11776
+ "description": "The original text content of this test or step as found in the source file.",
11777
+ "readOnly": true
11778
+ },
11779
+ "isInline": {
11780
+ "type": "boolean",
11781
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
11782
+ "default": false,
11783
+ "readOnly": true
11784
+ },
11785
+ "isAutoDetected": {
11786
+ "type": "boolean",
11787
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
11788
+ "default": false,
11789
+ "readOnly": true
11790
+ },
11791
+ "commentFormat": {
11792
+ "type": "string",
11793
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
11794
+ "enum": [
11795
+ "htmlComment",
11796
+ "jsxComment",
11797
+ "linkReference"
11798
+ ],
11799
+ "readOnly": true
11800
+ }
11801
+ },
11802
+ "examples": [
11803
+ {
11804
+ "file": "/path/to/docs/getting-started.md",
11805
+ "startLine": 42,
11806
+ "endLine": 45,
11807
+ "startColumn": 1,
11808
+ "endColumn": 3,
11809
+ "startOffset": 1250,
11810
+ "endOffset": 1350,
11811
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
11812
+ "isInline": true,
11813
+ "isAutoDetected": false,
11814
+ "commentFormat": "htmlComment"
11815
+ },
11816
+ {
11817
+ "file": "/path/to/docs/tutorial.md",
11818
+ "startLine": 78,
11819
+ "endLine": 78,
11820
+ "startColumn": 1,
11821
+ "endColumn": 45,
11822
+ "startOffset": 2100,
11823
+ "endOffset": 2145,
11824
+ "originalText": "[example link](https://example.com)",
11825
+ "isInline": true,
11826
+ "isAutoDetected": true,
11827
+ "commentFormat": "htmlComment"
11828
+ }
11829
+ ]
11830
+ },
9369
11831
  "description": {
9370
11832
  "type": "string",
9371
11833
  "description": "Description of the step."
@@ -10786,6 +13248,112 @@
10786
13248
  "type": "string",
10787
13249
  "description": "ID of the step."
10788
13250
  },
13251
+ "sourceLocation": {
13252
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
13253
+ "$schema": "http://json-schema.org/draft-07/schema#",
13254
+ "title": "sourceLocation",
13255
+ "type": "object",
13256
+ "readOnly": true,
13257
+ "additionalProperties": false,
13258
+ "properties": {
13259
+ "file": {
13260
+ "type": "string",
13261
+ "description": "Absolute path to the source file containing this test or step.",
13262
+ "readOnly": true
13263
+ },
13264
+ "startLine": {
13265
+ "type": "integer",
13266
+ "description": "1-based line number where this test or step starts.",
13267
+ "minimum": 1,
13268
+ "readOnly": true
13269
+ },
13270
+ "endLine": {
13271
+ "type": "integer",
13272
+ "description": "1-based line number where this test or step ends.",
13273
+ "minimum": 1,
13274
+ "readOnly": true
13275
+ },
13276
+ "startColumn": {
13277
+ "type": "integer",
13278
+ "description": "1-based column number where this test or step starts on startLine.",
13279
+ "minimum": 1,
13280
+ "readOnly": true
13281
+ },
13282
+ "endColumn": {
13283
+ "type": "integer",
13284
+ "description": "1-based column number where this test or step ends on endLine.",
13285
+ "minimum": 1,
13286
+ "readOnly": true
13287
+ },
13288
+ "startOffset": {
13289
+ "type": "integer",
13290
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
13291
+ "minimum": 0,
13292
+ "readOnly": true
13293
+ },
13294
+ "endOffset": {
13295
+ "type": "integer",
13296
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
13297
+ "minimum": 0,
13298
+ "readOnly": true
13299
+ },
13300
+ "originalText": {
13301
+ "type": "string",
13302
+ "description": "The original text content of this test or step as found in the source file.",
13303
+ "readOnly": true
13304
+ },
13305
+ "isInline": {
13306
+ "type": "boolean",
13307
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
13308
+ "default": false,
13309
+ "readOnly": true
13310
+ },
13311
+ "isAutoDetected": {
13312
+ "type": "boolean",
13313
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
13314
+ "default": false,
13315
+ "readOnly": true
13316
+ },
13317
+ "commentFormat": {
13318
+ "type": "string",
13319
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
13320
+ "enum": [
13321
+ "htmlComment",
13322
+ "jsxComment",
13323
+ "linkReference"
13324
+ ],
13325
+ "readOnly": true
13326
+ }
13327
+ },
13328
+ "examples": [
13329
+ {
13330
+ "file": "/path/to/docs/getting-started.md",
13331
+ "startLine": 42,
13332
+ "endLine": 45,
13333
+ "startColumn": 1,
13334
+ "endColumn": 3,
13335
+ "startOffset": 1250,
13336
+ "endOffset": 1350,
13337
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
13338
+ "isInline": true,
13339
+ "isAutoDetected": false,
13340
+ "commentFormat": "htmlComment"
13341
+ },
13342
+ {
13343
+ "file": "/path/to/docs/tutorial.md",
13344
+ "startLine": 78,
13345
+ "endLine": 78,
13346
+ "startColumn": 1,
13347
+ "endColumn": 45,
13348
+ "startOffset": 2100,
13349
+ "endOffset": 2145,
13350
+ "originalText": "[example link](https://example.com)",
13351
+ "isInline": true,
13352
+ "isAutoDetected": true,
13353
+ "commentFormat": "htmlComment"
13354
+ }
13355
+ ]
13356
+ },
10789
13357
  "description": {
10790
13358
  "type": "string",
10791
13359
  "description": "Description of the step."
@@ -11276,6 +13844,112 @@
11276
13844
  "type": "string",
11277
13845
  "description": "ID of the step."
11278
13846
  },
13847
+ "sourceLocation": {
13848
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
13849
+ "$schema": "http://json-schema.org/draft-07/schema#",
13850
+ "title": "sourceLocation",
13851
+ "type": "object",
13852
+ "readOnly": true,
13853
+ "additionalProperties": false,
13854
+ "properties": {
13855
+ "file": {
13856
+ "type": "string",
13857
+ "description": "Absolute path to the source file containing this test or step.",
13858
+ "readOnly": true
13859
+ },
13860
+ "startLine": {
13861
+ "type": "integer",
13862
+ "description": "1-based line number where this test or step starts.",
13863
+ "minimum": 1,
13864
+ "readOnly": true
13865
+ },
13866
+ "endLine": {
13867
+ "type": "integer",
13868
+ "description": "1-based line number where this test or step ends.",
13869
+ "minimum": 1,
13870
+ "readOnly": true
13871
+ },
13872
+ "startColumn": {
13873
+ "type": "integer",
13874
+ "description": "1-based column number where this test or step starts on startLine.",
13875
+ "minimum": 1,
13876
+ "readOnly": true
13877
+ },
13878
+ "endColumn": {
13879
+ "type": "integer",
13880
+ "description": "1-based column number where this test or step ends on endLine.",
13881
+ "minimum": 1,
13882
+ "readOnly": true
13883
+ },
13884
+ "startOffset": {
13885
+ "type": "integer",
13886
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
13887
+ "minimum": 0,
13888
+ "readOnly": true
13889
+ },
13890
+ "endOffset": {
13891
+ "type": "integer",
13892
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
13893
+ "minimum": 0,
13894
+ "readOnly": true
13895
+ },
13896
+ "originalText": {
13897
+ "type": "string",
13898
+ "description": "The original text content of this test or step as found in the source file.",
13899
+ "readOnly": true
13900
+ },
13901
+ "isInline": {
13902
+ "type": "boolean",
13903
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
13904
+ "default": false,
13905
+ "readOnly": true
13906
+ },
13907
+ "isAutoDetected": {
13908
+ "type": "boolean",
13909
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
13910
+ "default": false,
13911
+ "readOnly": true
13912
+ },
13913
+ "commentFormat": {
13914
+ "type": "string",
13915
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
13916
+ "enum": [
13917
+ "htmlComment",
13918
+ "jsxComment",
13919
+ "linkReference"
13920
+ ],
13921
+ "readOnly": true
13922
+ }
13923
+ },
13924
+ "examples": [
13925
+ {
13926
+ "file": "/path/to/docs/getting-started.md",
13927
+ "startLine": 42,
13928
+ "endLine": 45,
13929
+ "startColumn": 1,
13930
+ "endColumn": 3,
13931
+ "startOffset": 1250,
13932
+ "endOffset": 1350,
13933
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
13934
+ "isInline": true,
13935
+ "isAutoDetected": false,
13936
+ "commentFormat": "htmlComment"
13937
+ },
13938
+ {
13939
+ "file": "/path/to/docs/tutorial.md",
13940
+ "startLine": 78,
13941
+ "endLine": 78,
13942
+ "startColumn": 1,
13943
+ "endColumn": 45,
13944
+ "startOffset": 2100,
13945
+ "endOffset": 2145,
13946
+ "originalText": "[example link](https://example.com)",
13947
+ "isInline": true,
13948
+ "isAutoDetected": true,
13949
+ "commentFormat": "htmlComment"
13950
+ }
13951
+ ]
13952
+ },
11279
13953
  "description": {
11280
13954
  "type": "string",
11281
13955
  "description": "Description of the step."
@@ -12341,6 +15015,112 @@
12341
15015
  "type": "string",
12342
15016
  "description": "ID of the step."
12343
15017
  },
15018
+ "sourceLocation": {
15019
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
15020
+ "$schema": "http://json-schema.org/draft-07/schema#",
15021
+ "title": "sourceLocation",
15022
+ "type": "object",
15023
+ "readOnly": true,
15024
+ "additionalProperties": false,
15025
+ "properties": {
15026
+ "file": {
15027
+ "type": "string",
15028
+ "description": "Absolute path to the source file containing this test or step.",
15029
+ "readOnly": true
15030
+ },
15031
+ "startLine": {
15032
+ "type": "integer",
15033
+ "description": "1-based line number where this test or step starts.",
15034
+ "minimum": 1,
15035
+ "readOnly": true
15036
+ },
15037
+ "endLine": {
15038
+ "type": "integer",
15039
+ "description": "1-based line number where this test or step ends.",
15040
+ "minimum": 1,
15041
+ "readOnly": true
15042
+ },
15043
+ "startColumn": {
15044
+ "type": "integer",
15045
+ "description": "1-based column number where this test or step starts on startLine.",
15046
+ "minimum": 1,
15047
+ "readOnly": true
15048
+ },
15049
+ "endColumn": {
15050
+ "type": "integer",
15051
+ "description": "1-based column number where this test or step ends on endLine.",
15052
+ "minimum": 1,
15053
+ "readOnly": true
15054
+ },
15055
+ "startOffset": {
15056
+ "type": "integer",
15057
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
15058
+ "minimum": 0,
15059
+ "readOnly": true
15060
+ },
15061
+ "endOffset": {
15062
+ "type": "integer",
15063
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
15064
+ "minimum": 0,
15065
+ "readOnly": true
15066
+ },
15067
+ "originalText": {
15068
+ "type": "string",
15069
+ "description": "The original text content of this test or step as found in the source file.",
15070
+ "readOnly": true
15071
+ },
15072
+ "isInline": {
15073
+ "type": "boolean",
15074
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
15075
+ "default": false,
15076
+ "readOnly": true
15077
+ },
15078
+ "isAutoDetected": {
15079
+ "type": "boolean",
15080
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
15081
+ "default": false,
15082
+ "readOnly": true
15083
+ },
15084
+ "commentFormat": {
15085
+ "type": "string",
15086
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
15087
+ "enum": [
15088
+ "htmlComment",
15089
+ "jsxComment",
15090
+ "linkReference"
15091
+ ],
15092
+ "readOnly": true
15093
+ }
15094
+ },
15095
+ "examples": [
15096
+ {
15097
+ "file": "/path/to/docs/getting-started.md",
15098
+ "startLine": 42,
15099
+ "endLine": 45,
15100
+ "startColumn": 1,
15101
+ "endColumn": 3,
15102
+ "startOffset": 1250,
15103
+ "endOffset": 1350,
15104
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
15105
+ "isInline": true,
15106
+ "isAutoDetected": false,
15107
+ "commentFormat": "htmlComment"
15108
+ },
15109
+ {
15110
+ "file": "/path/to/docs/tutorial.md",
15111
+ "startLine": 78,
15112
+ "endLine": 78,
15113
+ "startColumn": 1,
15114
+ "endColumn": 45,
15115
+ "startOffset": 2100,
15116
+ "endOffset": 2145,
15117
+ "originalText": "[example link](https://example.com)",
15118
+ "isInline": true,
15119
+ "isAutoDetected": true,
15120
+ "commentFormat": "htmlComment"
15121
+ }
15122
+ ]
15123
+ },
12344
15124
  "description": {
12345
15125
  "type": "string",
12346
15126
  "description": "Description of the step."
@@ -12648,6 +15428,112 @@
12648
15428
  "type": "string",
12649
15429
  "description": "ID of the step."
12650
15430
  },
15431
+ "sourceLocation": {
15432
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
15433
+ "$schema": "http://json-schema.org/draft-07/schema#",
15434
+ "title": "sourceLocation",
15435
+ "type": "object",
15436
+ "readOnly": true,
15437
+ "additionalProperties": false,
15438
+ "properties": {
15439
+ "file": {
15440
+ "type": "string",
15441
+ "description": "Absolute path to the source file containing this test or step.",
15442
+ "readOnly": true
15443
+ },
15444
+ "startLine": {
15445
+ "type": "integer",
15446
+ "description": "1-based line number where this test or step starts.",
15447
+ "minimum": 1,
15448
+ "readOnly": true
15449
+ },
15450
+ "endLine": {
15451
+ "type": "integer",
15452
+ "description": "1-based line number where this test or step ends.",
15453
+ "minimum": 1,
15454
+ "readOnly": true
15455
+ },
15456
+ "startColumn": {
15457
+ "type": "integer",
15458
+ "description": "1-based column number where this test or step starts on startLine.",
15459
+ "minimum": 1,
15460
+ "readOnly": true
15461
+ },
15462
+ "endColumn": {
15463
+ "type": "integer",
15464
+ "description": "1-based column number where this test or step ends on endLine.",
15465
+ "minimum": 1,
15466
+ "readOnly": true
15467
+ },
15468
+ "startOffset": {
15469
+ "type": "integer",
15470
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
15471
+ "minimum": 0,
15472
+ "readOnly": true
15473
+ },
15474
+ "endOffset": {
15475
+ "type": "integer",
15476
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
15477
+ "minimum": 0,
15478
+ "readOnly": true
15479
+ },
15480
+ "originalText": {
15481
+ "type": "string",
15482
+ "description": "The original text content of this test or step as found in the source file.",
15483
+ "readOnly": true
15484
+ },
15485
+ "isInline": {
15486
+ "type": "boolean",
15487
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
15488
+ "default": false,
15489
+ "readOnly": true
15490
+ },
15491
+ "isAutoDetected": {
15492
+ "type": "boolean",
15493
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
15494
+ "default": false,
15495
+ "readOnly": true
15496
+ },
15497
+ "commentFormat": {
15498
+ "type": "string",
15499
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
15500
+ "enum": [
15501
+ "htmlComment",
15502
+ "jsxComment",
15503
+ "linkReference"
15504
+ ],
15505
+ "readOnly": true
15506
+ }
15507
+ },
15508
+ "examples": [
15509
+ {
15510
+ "file": "/path/to/docs/getting-started.md",
15511
+ "startLine": 42,
15512
+ "endLine": 45,
15513
+ "startColumn": 1,
15514
+ "endColumn": 3,
15515
+ "startOffset": 1250,
15516
+ "endOffset": 1350,
15517
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
15518
+ "isInline": true,
15519
+ "isAutoDetected": false,
15520
+ "commentFormat": "htmlComment"
15521
+ },
15522
+ {
15523
+ "file": "/path/to/docs/tutorial.md",
15524
+ "startLine": 78,
15525
+ "endLine": 78,
15526
+ "startColumn": 1,
15527
+ "endColumn": 45,
15528
+ "startOffset": 2100,
15529
+ "endOffset": 2145,
15530
+ "originalText": "[example link](https://example.com)",
15531
+ "isInline": true,
15532
+ "isAutoDetected": true,
15533
+ "commentFormat": "htmlComment"
15534
+ }
15535
+ ]
15536
+ },
12651
15537
  "description": {
12652
15538
  "type": "string",
12653
15539
  "description": "Description of the step."
@@ -12941,6 +15827,112 @@
12941
15827
  "type": "string",
12942
15828
  "description": "ID of the step."
12943
15829
  },
15830
+ "sourceLocation": {
15831
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
15832
+ "$schema": "http://json-schema.org/draft-07/schema#",
15833
+ "title": "sourceLocation",
15834
+ "type": "object",
15835
+ "readOnly": true,
15836
+ "additionalProperties": false,
15837
+ "properties": {
15838
+ "file": {
15839
+ "type": "string",
15840
+ "description": "Absolute path to the source file containing this test or step.",
15841
+ "readOnly": true
15842
+ },
15843
+ "startLine": {
15844
+ "type": "integer",
15845
+ "description": "1-based line number where this test or step starts.",
15846
+ "minimum": 1,
15847
+ "readOnly": true
15848
+ },
15849
+ "endLine": {
15850
+ "type": "integer",
15851
+ "description": "1-based line number where this test or step ends.",
15852
+ "minimum": 1,
15853
+ "readOnly": true
15854
+ },
15855
+ "startColumn": {
15856
+ "type": "integer",
15857
+ "description": "1-based column number where this test or step starts on startLine.",
15858
+ "minimum": 1,
15859
+ "readOnly": true
15860
+ },
15861
+ "endColumn": {
15862
+ "type": "integer",
15863
+ "description": "1-based column number where this test or step ends on endLine.",
15864
+ "minimum": 1,
15865
+ "readOnly": true
15866
+ },
15867
+ "startOffset": {
15868
+ "type": "integer",
15869
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
15870
+ "minimum": 0,
15871
+ "readOnly": true
15872
+ },
15873
+ "endOffset": {
15874
+ "type": "integer",
15875
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
15876
+ "minimum": 0,
15877
+ "readOnly": true
15878
+ },
15879
+ "originalText": {
15880
+ "type": "string",
15881
+ "description": "The original text content of this test or step as found in the source file.",
15882
+ "readOnly": true
15883
+ },
15884
+ "isInline": {
15885
+ "type": "boolean",
15886
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
15887
+ "default": false,
15888
+ "readOnly": true
15889
+ },
15890
+ "isAutoDetected": {
15891
+ "type": "boolean",
15892
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
15893
+ "default": false,
15894
+ "readOnly": true
15895
+ },
15896
+ "commentFormat": {
15897
+ "type": "string",
15898
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
15899
+ "enum": [
15900
+ "htmlComment",
15901
+ "jsxComment",
15902
+ "linkReference"
15903
+ ],
15904
+ "readOnly": true
15905
+ }
15906
+ },
15907
+ "examples": [
15908
+ {
15909
+ "file": "/path/to/docs/getting-started.md",
15910
+ "startLine": 42,
15911
+ "endLine": 45,
15912
+ "startColumn": 1,
15913
+ "endColumn": 3,
15914
+ "startOffset": 1250,
15915
+ "endOffset": 1350,
15916
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
15917
+ "isInline": true,
15918
+ "isAutoDetected": false,
15919
+ "commentFormat": "htmlComment"
15920
+ },
15921
+ {
15922
+ "file": "/path/to/docs/tutorial.md",
15923
+ "startLine": 78,
15924
+ "endLine": 78,
15925
+ "startColumn": 1,
15926
+ "endColumn": 45,
15927
+ "startOffset": 2100,
15928
+ "endOffset": 2145,
15929
+ "originalText": "[example link](https://example.com)",
15930
+ "isInline": true,
15931
+ "isAutoDetected": true,
15932
+ "commentFormat": "htmlComment"
15933
+ }
15934
+ ]
15935
+ },
12944
15936
  "description": {
12945
15937
  "type": "string",
12946
15938
  "description": "Description of the step."
@@ -13252,10 +16244,116 @@
13252
16244
  "https://raw.githubusercontent.com/doc-detective/common/refs/heads/main/dist/schemas/step_v3.schema.json"
13253
16245
  ]
13254
16246
  },
13255
- "stepId": {
13256
- "type": "string",
13257
- "description": "ID of the step."
13258
- },
16247
+ "stepId": {
16248
+ "type": "string",
16249
+ "description": "ID of the step."
16250
+ },
16251
+ "sourceLocation": {
16252
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
16253
+ "$schema": "http://json-schema.org/draft-07/schema#",
16254
+ "title": "sourceLocation",
16255
+ "type": "object",
16256
+ "readOnly": true,
16257
+ "additionalProperties": false,
16258
+ "properties": {
16259
+ "file": {
16260
+ "type": "string",
16261
+ "description": "Absolute path to the source file containing this test or step.",
16262
+ "readOnly": true
16263
+ },
16264
+ "startLine": {
16265
+ "type": "integer",
16266
+ "description": "1-based line number where this test or step starts.",
16267
+ "minimum": 1,
16268
+ "readOnly": true
16269
+ },
16270
+ "endLine": {
16271
+ "type": "integer",
16272
+ "description": "1-based line number where this test or step ends.",
16273
+ "minimum": 1,
16274
+ "readOnly": true
16275
+ },
16276
+ "startColumn": {
16277
+ "type": "integer",
16278
+ "description": "1-based column number where this test or step starts on startLine.",
16279
+ "minimum": 1,
16280
+ "readOnly": true
16281
+ },
16282
+ "endColumn": {
16283
+ "type": "integer",
16284
+ "description": "1-based column number where this test or step ends on endLine.",
16285
+ "minimum": 1,
16286
+ "readOnly": true
16287
+ },
16288
+ "startOffset": {
16289
+ "type": "integer",
16290
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
16291
+ "minimum": 0,
16292
+ "readOnly": true
16293
+ },
16294
+ "endOffset": {
16295
+ "type": "integer",
16296
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
16297
+ "minimum": 0,
16298
+ "readOnly": true
16299
+ },
16300
+ "originalText": {
16301
+ "type": "string",
16302
+ "description": "The original text content of this test or step as found in the source file.",
16303
+ "readOnly": true
16304
+ },
16305
+ "isInline": {
16306
+ "type": "boolean",
16307
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
16308
+ "default": false,
16309
+ "readOnly": true
16310
+ },
16311
+ "isAutoDetected": {
16312
+ "type": "boolean",
16313
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
16314
+ "default": false,
16315
+ "readOnly": true
16316
+ },
16317
+ "commentFormat": {
16318
+ "type": "string",
16319
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
16320
+ "enum": [
16321
+ "htmlComment",
16322
+ "jsxComment",
16323
+ "linkReference"
16324
+ ],
16325
+ "readOnly": true
16326
+ }
16327
+ },
16328
+ "examples": [
16329
+ {
16330
+ "file": "/path/to/docs/getting-started.md",
16331
+ "startLine": 42,
16332
+ "endLine": 45,
16333
+ "startColumn": 1,
16334
+ "endColumn": 3,
16335
+ "startOffset": 1250,
16336
+ "endOffset": 1350,
16337
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
16338
+ "isInline": true,
16339
+ "isAutoDetected": false,
16340
+ "commentFormat": "htmlComment"
16341
+ },
16342
+ {
16343
+ "file": "/path/to/docs/tutorial.md",
16344
+ "startLine": 78,
16345
+ "endLine": 78,
16346
+ "startColumn": 1,
16347
+ "endColumn": 45,
16348
+ "startOffset": 2100,
16349
+ "endOffset": 2145,
16350
+ "originalText": "[example link](https://example.com)",
16351
+ "isInline": true,
16352
+ "isAutoDetected": true,
16353
+ "commentFormat": "htmlComment"
16354
+ }
16355
+ ]
16356
+ },
13259
16357
  "description": {
13260
16358
  "type": "string",
13261
16359
  "description": "Description of the step."
@@ -13908,6 +17006,112 @@
13908
17006
  "type": "string",
13909
17007
  "description": "ID of the step."
13910
17008
  },
17009
+ "sourceLocation": {
17010
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
17011
+ "$schema": "http://json-schema.org/draft-07/schema#",
17012
+ "title": "sourceLocation",
17013
+ "type": "object",
17014
+ "readOnly": true,
17015
+ "additionalProperties": false,
17016
+ "properties": {
17017
+ "file": {
17018
+ "type": "string",
17019
+ "description": "Absolute path to the source file containing this test or step.",
17020
+ "readOnly": true
17021
+ },
17022
+ "startLine": {
17023
+ "type": "integer",
17024
+ "description": "1-based line number where this test or step starts.",
17025
+ "minimum": 1,
17026
+ "readOnly": true
17027
+ },
17028
+ "endLine": {
17029
+ "type": "integer",
17030
+ "description": "1-based line number where this test or step ends.",
17031
+ "minimum": 1,
17032
+ "readOnly": true
17033
+ },
17034
+ "startColumn": {
17035
+ "type": "integer",
17036
+ "description": "1-based column number where this test or step starts on startLine.",
17037
+ "minimum": 1,
17038
+ "readOnly": true
17039
+ },
17040
+ "endColumn": {
17041
+ "type": "integer",
17042
+ "description": "1-based column number where this test or step ends on endLine.",
17043
+ "minimum": 1,
17044
+ "readOnly": true
17045
+ },
17046
+ "startOffset": {
17047
+ "type": "integer",
17048
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
17049
+ "minimum": 0,
17050
+ "readOnly": true
17051
+ },
17052
+ "endOffset": {
17053
+ "type": "integer",
17054
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
17055
+ "minimum": 0,
17056
+ "readOnly": true
17057
+ },
17058
+ "originalText": {
17059
+ "type": "string",
17060
+ "description": "The original text content of this test or step as found in the source file.",
17061
+ "readOnly": true
17062
+ },
17063
+ "isInline": {
17064
+ "type": "boolean",
17065
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
17066
+ "default": false,
17067
+ "readOnly": true
17068
+ },
17069
+ "isAutoDetected": {
17070
+ "type": "boolean",
17071
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
17072
+ "default": false,
17073
+ "readOnly": true
17074
+ },
17075
+ "commentFormat": {
17076
+ "type": "string",
17077
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
17078
+ "enum": [
17079
+ "htmlComment",
17080
+ "jsxComment",
17081
+ "linkReference"
17082
+ ],
17083
+ "readOnly": true
17084
+ }
17085
+ },
17086
+ "examples": [
17087
+ {
17088
+ "file": "/path/to/docs/getting-started.md",
17089
+ "startLine": 42,
17090
+ "endLine": 45,
17091
+ "startColumn": 1,
17092
+ "endColumn": 3,
17093
+ "startOffset": 1250,
17094
+ "endOffset": 1350,
17095
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
17096
+ "isInline": true,
17097
+ "isAutoDetected": false,
17098
+ "commentFormat": "htmlComment"
17099
+ },
17100
+ {
17101
+ "file": "/path/to/docs/tutorial.md",
17102
+ "startLine": 78,
17103
+ "endLine": 78,
17104
+ "startColumn": 1,
17105
+ "endColumn": 45,
17106
+ "startOffset": 2100,
17107
+ "endOffset": 2145,
17108
+ "originalText": "[example link](https://example.com)",
17109
+ "isInline": true,
17110
+ "isAutoDetected": true,
17111
+ "commentFormat": "htmlComment"
17112
+ }
17113
+ ]
17114
+ },
13911
17115
  "description": {
13912
17116
  "type": "string",
13913
17117
  "description": "Description of the step."
@@ -14224,6 +17428,112 @@
14224
17428
  "type": "string",
14225
17429
  "description": "ID of the step."
14226
17430
  },
17431
+ "sourceLocation": {
17432
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
17433
+ "$schema": "http://json-schema.org/draft-07/schema#",
17434
+ "title": "sourceLocation",
17435
+ "type": "object",
17436
+ "readOnly": true,
17437
+ "additionalProperties": false,
17438
+ "properties": {
17439
+ "file": {
17440
+ "type": "string",
17441
+ "description": "Absolute path to the source file containing this test or step.",
17442
+ "readOnly": true
17443
+ },
17444
+ "startLine": {
17445
+ "type": "integer",
17446
+ "description": "1-based line number where this test or step starts.",
17447
+ "minimum": 1,
17448
+ "readOnly": true
17449
+ },
17450
+ "endLine": {
17451
+ "type": "integer",
17452
+ "description": "1-based line number where this test or step ends.",
17453
+ "minimum": 1,
17454
+ "readOnly": true
17455
+ },
17456
+ "startColumn": {
17457
+ "type": "integer",
17458
+ "description": "1-based column number where this test or step starts on startLine.",
17459
+ "minimum": 1,
17460
+ "readOnly": true
17461
+ },
17462
+ "endColumn": {
17463
+ "type": "integer",
17464
+ "description": "1-based column number where this test or step ends on endLine.",
17465
+ "minimum": 1,
17466
+ "readOnly": true
17467
+ },
17468
+ "startOffset": {
17469
+ "type": "integer",
17470
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
17471
+ "minimum": 0,
17472
+ "readOnly": true
17473
+ },
17474
+ "endOffset": {
17475
+ "type": "integer",
17476
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
17477
+ "minimum": 0,
17478
+ "readOnly": true
17479
+ },
17480
+ "originalText": {
17481
+ "type": "string",
17482
+ "description": "The original text content of this test or step as found in the source file.",
17483
+ "readOnly": true
17484
+ },
17485
+ "isInline": {
17486
+ "type": "boolean",
17487
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
17488
+ "default": false,
17489
+ "readOnly": true
17490
+ },
17491
+ "isAutoDetected": {
17492
+ "type": "boolean",
17493
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
17494
+ "default": false,
17495
+ "readOnly": true
17496
+ },
17497
+ "commentFormat": {
17498
+ "type": "string",
17499
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
17500
+ "enum": [
17501
+ "htmlComment",
17502
+ "jsxComment",
17503
+ "linkReference"
17504
+ ],
17505
+ "readOnly": true
17506
+ }
17507
+ },
17508
+ "examples": [
17509
+ {
17510
+ "file": "/path/to/docs/getting-started.md",
17511
+ "startLine": 42,
17512
+ "endLine": 45,
17513
+ "startColumn": 1,
17514
+ "endColumn": 3,
17515
+ "startOffset": 1250,
17516
+ "endOffset": 1350,
17517
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
17518
+ "isInline": true,
17519
+ "isAutoDetected": false,
17520
+ "commentFormat": "htmlComment"
17521
+ },
17522
+ {
17523
+ "file": "/path/to/docs/tutorial.md",
17524
+ "startLine": 78,
17525
+ "endLine": 78,
17526
+ "startColumn": 1,
17527
+ "endColumn": 45,
17528
+ "startOffset": 2100,
17529
+ "endOffset": 2145,
17530
+ "originalText": "[example link](https://example.com)",
17531
+ "isInline": true,
17532
+ "isAutoDetected": true,
17533
+ "commentFormat": "htmlComment"
17534
+ }
17535
+ ]
17536
+ },
14227
17537
  "description": {
14228
17538
  "type": "string",
14229
17539
  "description": "Description of the step."
@@ -14396,6 +17706,112 @@
14396
17706
  "type": "string",
14397
17707
  "description": "ID of the step."
14398
17708
  },
17709
+ "sourceLocation": {
17710
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
17711
+ "$schema": "http://json-schema.org/draft-07/schema#",
17712
+ "title": "sourceLocation",
17713
+ "type": "object",
17714
+ "readOnly": true,
17715
+ "additionalProperties": false,
17716
+ "properties": {
17717
+ "file": {
17718
+ "type": "string",
17719
+ "description": "Absolute path to the source file containing this test or step.",
17720
+ "readOnly": true
17721
+ },
17722
+ "startLine": {
17723
+ "type": "integer",
17724
+ "description": "1-based line number where this test or step starts.",
17725
+ "minimum": 1,
17726
+ "readOnly": true
17727
+ },
17728
+ "endLine": {
17729
+ "type": "integer",
17730
+ "description": "1-based line number where this test or step ends.",
17731
+ "minimum": 1,
17732
+ "readOnly": true
17733
+ },
17734
+ "startColumn": {
17735
+ "type": "integer",
17736
+ "description": "1-based column number where this test or step starts on startLine.",
17737
+ "minimum": 1,
17738
+ "readOnly": true
17739
+ },
17740
+ "endColumn": {
17741
+ "type": "integer",
17742
+ "description": "1-based column number where this test or step ends on endLine.",
17743
+ "minimum": 1,
17744
+ "readOnly": true
17745
+ },
17746
+ "startOffset": {
17747
+ "type": "integer",
17748
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
17749
+ "minimum": 0,
17750
+ "readOnly": true
17751
+ },
17752
+ "endOffset": {
17753
+ "type": "integer",
17754
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
17755
+ "minimum": 0,
17756
+ "readOnly": true
17757
+ },
17758
+ "originalText": {
17759
+ "type": "string",
17760
+ "description": "The original text content of this test or step as found in the source file.",
17761
+ "readOnly": true
17762
+ },
17763
+ "isInline": {
17764
+ "type": "boolean",
17765
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
17766
+ "default": false,
17767
+ "readOnly": true
17768
+ },
17769
+ "isAutoDetected": {
17770
+ "type": "boolean",
17771
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
17772
+ "default": false,
17773
+ "readOnly": true
17774
+ },
17775
+ "commentFormat": {
17776
+ "type": "string",
17777
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
17778
+ "enum": [
17779
+ "htmlComment",
17780
+ "jsxComment",
17781
+ "linkReference"
17782
+ ],
17783
+ "readOnly": true
17784
+ }
17785
+ },
17786
+ "examples": [
17787
+ {
17788
+ "file": "/path/to/docs/getting-started.md",
17789
+ "startLine": 42,
17790
+ "endLine": 45,
17791
+ "startColumn": 1,
17792
+ "endColumn": 3,
17793
+ "startOffset": 1250,
17794
+ "endOffset": 1350,
17795
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
17796
+ "isInline": true,
17797
+ "isAutoDetected": false,
17798
+ "commentFormat": "htmlComment"
17799
+ },
17800
+ {
17801
+ "file": "/path/to/docs/tutorial.md",
17802
+ "startLine": 78,
17803
+ "endLine": 78,
17804
+ "startColumn": 1,
17805
+ "endColumn": 45,
17806
+ "startOffset": 2100,
17807
+ "endOffset": 2145,
17808
+ "originalText": "[example link](https://example.com)",
17809
+ "isInline": true,
17810
+ "isAutoDetected": true,
17811
+ "commentFormat": "htmlComment"
17812
+ }
17813
+ ]
17814
+ },
14399
17815
  "description": {
14400
17816
  "type": "string",
14401
17817
  "description": "Description of the step."
@@ -14481,6 +17897,112 @@
14481
17897
  "type": "string",
14482
17898
  "description": "ID of the step."
14483
17899
  },
17900
+ "sourceLocation": {
17901
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
17902
+ "$schema": "http://json-schema.org/draft-07/schema#",
17903
+ "title": "sourceLocation",
17904
+ "type": "object",
17905
+ "readOnly": true,
17906
+ "additionalProperties": false,
17907
+ "properties": {
17908
+ "file": {
17909
+ "type": "string",
17910
+ "description": "Absolute path to the source file containing this test or step.",
17911
+ "readOnly": true
17912
+ },
17913
+ "startLine": {
17914
+ "type": "integer",
17915
+ "description": "1-based line number where this test or step starts.",
17916
+ "minimum": 1,
17917
+ "readOnly": true
17918
+ },
17919
+ "endLine": {
17920
+ "type": "integer",
17921
+ "description": "1-based line number where this test or step ends.",
17922
+ "minimum": 1,
17923
+ "readOnly": true
17924
+ },
17925
+ "startColumn": {
17926
+ "type": "integer",
17927
+ "description": "1-based column number where this test or step starts on startLine.",
17928
+ "minimum": 1,
17929
+ "readOnly": true
17930
+ },
17931
+ "endColumn": {
17932
+ "type": "integer",
17933
+ "description": "1-based column number where this test or step ends on endLine.",
17934
+ "minimum": 1,
17935
+ "readOnly": true
17936
+ },
17937
+ "startOffset": {
17938
+ "type": "integer",
17939
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
17940
+ "minimum": 0,
17941
+ "readOnly": true
17942
+ },
17943
+ "endOffset": {
17944
+ "type": "integer",
17945
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
17946
+ "minimum": 0,
17947
+ "readOnly": true
17948
+ },
17949
+ "originalText": {
17950
+ "type": "string",
17951
+ "description": "The original text content of this test or step as found in the source file.",
17952
+ "readOnly": true
17953
+ },
17954
+ "isInline": {
17955
+ "type": "boolean",
17956
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
17957
+ "default": false,
17958
+ "readOnly": true
17959
+ },
17960
+ "isAutoDetected": {
17961
+ "type": "boolean",
17962
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
17963
+ "default": false,
17964
+ "readOnly": true
17965
+ },
17966
+ "commentFormat": {
17967
+ "type": "string",
17968
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
17969
+ "enum": [
17970
+ "htmlComment",
17971
+ "jsxComment",
17972
+ "linkReference"
17973
+ ],
17974
+ "readOnly": true
17975
+ }
17976
+ },
17977
+ "examples": [
17978
+ {
17979
+ "file": "/path/to/docs/getting-started.md",
17980
+ "startLine": 42,
17981
+ "endLine": 45,
17982
+ "startColumn": 1,
17983
+ "endColumn": 3,
17984
+ "startOffset": 1250,
17985
+ "endOffset": 1350,
17986
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
17987
+ "isInline": true,
17988
+ "isAutoDetected": false,
17989
+ "commentFormat": "htmlComment"
17990
+ },
17991
+ {
17992
+ "file": "/path/to/docs/tutorial.md",
17993
+ "startLine": 78,
17994
+ "endLine": 78,
17995
+ "startColumn": 1,
17996
+ "endColumn": 45,
17997
+ "startOffset": 2100,
17998
+ "endOffset": 2145,
17999
+ "originalText": "[example link](https://example.com)",
18000
+ "isInline": true,
18001
+ "isAutoDetected": true,
18002
+ "commentFormat": "htmlComment"
18003
+ }
18004
+ ]
18005
+ },
14484
18006
  "description": {
14485
18007
  "type": "string",
14486
18008
  "description": "Description of the step."
@@ -14561,6 +18083,112 @@
14561
18083
  "type": "string",
14562
18084
  "description": "ID of the step."
14563
18085
  },
18086
+ "sourceLocation": {
18087
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
18088
+ "$schema": "http://json-schema.org/draft-07/schema#",
18089
+ "title": "sourceLocation",
18090
+ "type": "object",
18091
+ "readOnly": true,
18092
+ "additionalProperties": false,
18093
+ "properties": {
18094
+ "file": {
18095
+ "type": "string",
18096
+ "description": "Absolute path to the source file containing this test or step.",
18097
+ "readOnly": true
18098
+ },
18099
+ "startLine": {
18100
+ "type": "integer",
18101
+ "description": "1-based line number where this test or step starts.",
18102
+ "minimum": 1,
18103
+ "readOnly": true
18104
+ },
18105
+ "endLine": {
18106
+ "type": "integer",
18107
+ "description": "1-based line number where this test or step ends.",
18108
+ "minimum": 1,
18109
+ "readOnly": true
18110
+ },
18111
+ "startColumn": {
18112
+ "type": "integer",
18113
+ "description": "1-based column number where this test or step starts on startLine.",
18114
+ "minimum": 1,
18115
+ "readOnly": true
18116
+ },
18117
+ "endColumn": {
18118
+ "type": "integer",
18119
+ "description": "1-based column number where this test or step ends on endLine.",
18120
+ "minimum": 1,
18121
+ "readOnly": true
18122
+ },
18123
+ "startOffset": {
18124
+ "type": "integer",
18125
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
18126
+ "minimum": 0,
18127
+ "readOnly": true
18128
+ },
18129
+ "endOffset": {
18130
+ "type": "integer",
18131
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
18132
+ "minimum": 0,
18133
+ "readOnly": true
18134
+ },
18135
+ "originalText": {
18136
+ "type": "string",
18137
+ "description": "The original text content of this test or step as found in the source file.",
18138
+ "readOnly": true
18139
+ },
18140
+ "isInline": {
18141
+ "type": "boolean",
18142
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
18143
+ "default": false,
18144
+ "readOnly": true
18145
+ },
18146
+ "isAutoDetected": {
18147
+ "type": "boolean",
18148
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
18149
+ "default": false,
18150
+ "readOnly": true
18151
+ },
18152
+ "commentFormat": {
18153
+ "type": "string",
18154
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
18155
+ "enum": [
18156
+ "htmlComment",
18157
+ "jsxComment",
18158
+ "linkReference"
18159
+ ],
18160
+ "readOnly": true
18161
+ }
18162
+ },
18163
+ "examples": [
18164
+ {
18165
+ "file": "/path/to/docs/getting-started.md",
18166
+ "startLine": 42,
18167
+ "endLine": 45,
18168
+ "startColumn": 1,
18169
+ "endColumn": 3,
18170
+ "startOffset": 1250,
18171
+ "endOffset": 1350,
18172
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
18173
+ "isInline": true,
18174
+ "isAutoDetected": false,
18175
+ "commentFormat": "htmlComment"
18176
+ },
18177
+ {
18178
+ "file": "/path/to/docs/tutorial.md",
18179
+ "startLine": 78,
18180
+ "endLine": 78,
18181
+ "startColumn": 1,
18182
+ "endColumn": 45,
18183
+ "startOffset": 2100,
18184
+ "endOffset": 2145,
18185
+ "originalText": "[example link](https://example.com)",
18186
+ "isInline": true,
18187
+ "isAutoDetected": true,
18188
+ "commentFormat": "htmlComment"
18189
+ }
18190
+ ]
18191
+ },
14564
18192
  "description": {
14565
18193
  "type": "string",
14566
18194
  "description": "Description of the step."
@@ -15128,6 +18756,112 @@
15128
18756
  "type": "string",
15129
18757
  "description": "ID of the step."
15130
18758
  },
18759
+ "sourceLocation": {
18760
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
18761
+ "$schema": "http://json-schema.org/draft-07/schema#",
18762
+ "title": "sourceLocation",
18763
+ "type": "object",
18764
+ "readOnly": true,
18765
+ "additionalProperties": false,
18766
+ "properties": {
18767
+ "file": {
18768
+ "type": "string",
18769
+ "description": "Absolute path to the source file containing this test or step.",
18770
+ "readOnly": true
18771
+ },
18772
+ "startLine": {
18773
+ "type": "integer",
18774
+ "description": "1-based line number where this test or step starts.",
18775
+ "minimum": 1,
18776
+ "readOnly": true
18777
+ },
18778
+ "endLine": {
18779
+ "type": "integer",
18780
+ "description": "1-based line number where this test or step ends.",
18781
+ "minimum": 1,
18782
+ "readOnly": true
18783
+ },
18784
+ "startColumn": {
18785
+ "type": "integer",
18786
+ "description": "1-based column number where this test or step starts on startLine.",
18787
+ "minimum": 1,
18788
+ "readOnly": true
18789
+ },
18790
+ "endColumn": {
18791
+ "type": "integer",
18792
+ "description": "1-based column number where this test or step ends on endLine.",
18793
+ "minimum": 1,
18794
+ "readOnly": true
18795
+ },
18796
+ "startOffset": {
18797
+ "type": "integer",
18798
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
18799
+ "minimum": 0,
18800
+ "readOnly": true
18801
+ },
18802
+ "endOffset": {
18803
+ "type": "integer",
18804
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
18805
+ "minimum": 0,
18806
+ "readOnly": true
18807
+ },
18808
+ "originalText": {
18809
+ "type": "string",
18810
+ "description": "The original text content of this test or step as found in the source file.",
18811
+ "readOnly": true
18812
+ },
18813
+ "isInline": {
18814
+ "type": "boolean",
18815
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
18816
+ "default": false,
18817
+ "readOnly": true
18818
+ },
18819
+ "isAutoDetected": {
18820
+ "type": "boolean",
18821
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
18822
+ "default": false,
18823
+ "readOnly": true
18824
+ },
18825
+ "commentFormat": {
18826
+ "type": "string",
18827
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
18828
+ "enum": [
18829
+ "htmlComment",
18830
+ "jsxComment",
18831
+ "linkReference"
18832
+ ],
18833
+ "readOnly": true
18834
+ }
18835
+ },
18836
+ "examples": [
18837
+ {
18838
+ "file": "/path/to/docs/getting-started.md",
18839
+ "startLine": 42,
18840
+ "endLine": 45,
18841
+ "startColumn": 1,
18842
+ "endColumn": 3,
18843
+ "startOffset": 1250,
18844
+ "endOffset": 1350,
18845
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
18846
+ "isInline": true,
18847
+ "isAutoDetected": false,
18848
+ "commentFormat": "htmlComment"
18849
+ },
18850
+ {
18851
+ "file": "/path/to/docs/tutorial.md",
18852
+ "startLine": 78,
18853
+ "endLine": 78,
18854
+ "startColumn": 1,
18855
+ "endColumn": 45,
18856
+ "startOffset": 2100,
18857
+ "endOffset": 2145,
18858
+ "originalText": "[example link](https://example.com)",
18859
+ "isInline": true,
18860
+ "isAutoDetected": true,
18861
+ "commentFormat": "htmlComment"
18862
+ }
18863
+ ]
18864
+ },
15131
18865
  "description": {
15132
18866
  "type": "string",
15133
18867
  "description": "Description of the step."
@@ -15427,6 +19161,112 @@
15427
19161
  "type": "string",
15428
19162
  "description": "ID of the step."
15429
19163
  },
19164
+ "sourceLocation": {
19165
+ "description": "Source location information for inline steps. Read-only, populated during detection.",
19166
+ "$schema": "http://json-schema.org/draft-07/schema#",
19167
+ "title": "sourceLocation",
19168
+ "type": "object",
19169
+ "readOnly": true,
19170
+ "additionalProperties": false,
19171
+ "properties": {
19172
+ "file": {
19173
+ "type": "string",
19174
+ "description": "Absolute path to the source file containing this test or step.",
19175
+ "readOnly": true
19176
+ },
19177
+ "startLine": {
19178
+ "type": "integer",
19179
+ "description": "1-based line number where this test or step starts.",
19180
+ "minimum": 1,
19181
+ "readOnly": true
19182
+ },
19183
+ "endLine": {
19184
+ "type": "integer",
19185
+ "description": "1-based line number where this test or step ends.",
19186
+ "minimum": 1,
19187
+ "readOnly": true
19188
+ },
19189
+ "startColumn": {
19190
+ "type": "integer",
19191
+ "description": "1-based column number where this test or step starts on startLine.",
19192
+ "minimum": 1,
19193
+ "readOnly": true
19194
+ },
19195
+ "endColumn": {
19196
+ "type": "integer",
19197
+ "description": "1-based column number where this test or step ends on endLine.",
19198
+ "minimum": 1,
19199
+ "readOnly": true
19200
+ },
19201
+ "startOffset": {
19202
+ "type": "integer",
19203
+ "description": "0-based character offset from the beginning of the file where this test or step starts.",
19204
+ "minimum": 0,
19205
+ "readOnly": true
19206
+ },
19207
+ "endOffset": {
19208
+ "type": "integer",
19209
+ "description": "0-based character offset from the beginning of the file where this test or step ends.",
19210
+ "minimum": 0,
19211
+ "readOnly": true
19212
+ },
19213
+ "originalText": {
19214
+ "type": "string",
19215
+ "description": "The original text content of this test or step as found in the source file.",
19216
+ "readOnly": true
19217
+ },
19218
+ "isInline": {
19219
+ "type": "boolean",
19220
+ "description": "Whether this test or step was detected from inline comments within a content file (true) or from a standalone spec file (false).",
19221
+ "default": false,
19222
+ "readOnly": true
19223
+ },
19224
+ "isAutoDetected": {
19225
+ "type": "boolean",
19226
+ "description": "Whether this step was auto-detected from markup patterns (true) or explicitly defined in an inline comment (false). Only applicable to steps.",
19227
+ "default": false,
19228
+ "readOnly": true
19229
+ },
19230
+ "commentFormat": {
19231
+ "type": "string",
19232
+ "description": "The comment format used for this inline test or step. Used when serializing edits back to the source file.",
19233
+ "enum": [
19234
+ "htmlComment",
19235
+ "jsxComment",
19236
+ "linkReference"
19237
+ ],
19238
+ "readOnly": true
19239
+ }
19240
+ },
19241
+ "examples": [
19242
+ {
19243
+ "file": "/path/to/docs/getting-started.md",
19244
+ "startLine": 42,
19245
+ "endLine": 45,
19246
+ "startColumn": 1,
19247
+ "endColumn": 3,
19248
+ "startOffset": 1250,
19249
+ "endOffset": 1350,
19250
+ "originalText": "<!-- test testId=\"navigation-test\" -->",
19251
+ "isInline": true,
19252
+ "isAutoDetected": false,
19253
+ "commentFormat": "htmlComment"
19254
+ },
19255
+ {
19256
+ "file": "/path/to/docs/tutorial.md",
19257
+ "startLine": 78,
19258
+ "endLine": 78,
19259
+ "startColumn": 1,
19260
+ "endColumn": 45,
19261
+ "startOffset": 2100,
19262
+ "endOffset": 2145,
19263
+ "originalText": "[example link](https://example.com)",
19264
+ "isInline": true,
19265
+ "isAutoDetected": true,
19266
+ "commentFormat": "htmlComment"
19267
+ }
19268
+ ]
19269
+ },
15430
19270
  "description": {
15431
19271
  "type": "string",
15432
19272
  "description": "Description of the step."