@praxisui/editorial-forms 9.0.0-beta.85 → 9.0.0-beta.88

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.
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
- "generatedAt": "2026-07-21T15:34:49.320Z",
3
+ "generatedAt": "2026-07-23T02:50:28.389Z",
4
4
  "packageName": "@praxisui/editorial-forms",
5
- "packageVersion": "9.0.0-beta.85",
5
+ "packageVersion": "9.0.0-beta.88",
6
6
  "sourceRegistry": "praxis-component-registry-ingestion",
7
7
  "sourceRegistryVersion": "1.0.0",
8
8
  "componentCount": 2,
@@ -391,6 +391,35 @@
391
391
  "instanceId",
392
392
  "journeyId"
393
393
  ],
394
+ "inputSchema": {
395
+ "type": "object",
396
+ "required": [
397
+ "solutionId"
398
+ ],
399
+ "properties": {
400
+ "solutionId": {
401
+ "type": "string"
402
+ },
403
+ "instanceId": {
404
+ "type": "string"
405
+ },
406
+ "journeyId": {
407
+ "type": "string"
408
+ },
409
+ "stepId": {
410
+ "type": "string"
411
+ },
412
+ "runtimeContextPatch": {
413
+ "type": "object"
414
+ },
415
+ "instanceContextPatch": {
416
+ "type": "object"
417
+ },
418
+ "preserveDiagnostics": {
419
+ "type": "boolean"
420
+ }
421
+ }
422
+ },
394
423
  "failureModes": [
395
424
  "solution-not-found",
396
425
  "journey-not-found",
@@ -492,6 +521,45 @@
492
521
  "scope.journeyId",
493
522
  "scope.stepId"
494
523
  ],
524
+ "inputSchema": {
525
+ "type": "object",
526
+ "required": [
527
+ "mode"
528
+ ],
529
+ "properties": {
530
+ "mode": {
531
+ "enum": [
532
+ "normal",
533
+ "warning",
534
+ "degraded",
535
+ "blocked"
536
+ ]
537
+ },
538
+ "diagnosticCode": {
539
+ "type": "string"
540
+ },
541
+ "progressionBlocked": {
542
+ "type": "boolean"
543
+ },
544
+ "requiresEngineAttention": {
545
+ "type": "boolean"
546
+ },
547
+ "scope": {
548
+ "type": "object",
549
+ "properties": {
550
+ "journeyId": {
551
+ "type": "string"
552
+ },
553
+ "stepId": {
554
+ "type": "string"
555
+ },
556
+ "blockId": {
557
+ "type": "string"
558
+ }
559
+ }
560
+ }
561
+ }
562
+ },
495
563
  "failureModes": [
496
564
  "fallback-mode-invalid",
497
565
  "blocking-diagnostic-missing",
@@ -619,6 +687,74 @@
619
687
  "presentation.layout.orientation",
620
688
  "presentation.stepper.orientation"
621
689
  ],
690
+ "inputSchema": {
691
+ "type": "object",
692
+ "minProperties": 1,
693
+ "properties": {
694
+ "layout": {
695
+ "type": "object",
696
+ "properties": {
697
+ "orientation": {
698
+ "enum": [
699
+ "horizontal",
700
+ "vertical"
701
+ ]
702
+ },
703
+ "density": {
704
+ "enum": [
705
+ "compact",
706
+ "comfortable",
707
+ "relaxed"
708
+ ]
709
+ },
710
+ "maxWidth": {
711
+ "type": "string"
712
+ },
713
+ "shellVariant": {
714
+ "type": "string"
715
+ },
716
+ "spacing": {
717
+ "type": "object"
718
+ },
719
+ "responsive": {
720
+ "type": "object"
721
+ }
722
+ }
723
+ },
724
+ "theme": {
725
+ "type": "object"
726
+ },
727
+ "stepper": {
728
+ "type": "object",
729
+ "properties": {
730
+ "visible": {
731
+ "type": "boolean"
732
+ },
733
+ "orientation": {
734
+ "enum": [
735
+ "horizontal",
736
+ "vertical"
737
+ ]
738
+ },
739
+ "showLabels": {
740
+ "type": "boolean"
741
+ },
742
+ "showDescriptions": {
743
+ "type": "boolean"
744
+ },
745
+ "showConnectors": {
746
+ "type": "boolean"
747
+ },
748
+ "connectorStyle": {
749
+ "type": "string"
750
+ },
751
+ "allowStepJump": {
752
+ "type": "boolean"
753
+ }
754
+ }
755
+ }
756
+ }
757
+ },
622
758
  "failureModes": [
623
759
  "presentation-key-unsupported",
624
760
  "theme-token-invalid",
@@ -713,6 +849,42 @@
713
849
  "adapterId",
714
850
  "dataBlockType"
715
851
  ],
852
+ "inputSchema": {
853
+ "type": "object",
854
+ "required": [
855
+ "adapterId",
856
+ "dataBlockType"
857
+ ],
858
+ "properties": {
859
+ "adapterId": {
860
+ "type": "string"
861
+ },
862
+ "dataBlockType": {
863
+ "enum": [
864
+ "dataCollection"
865
+ ]
866
+ },
867
+ "componentRef": {
868
+ "type": "string"
869
+ },
870
+ "requiredInputs": {
871
+ "type": "array",
872
+ "items": {
873
+ "type": "string"
874
+ }
875
+ },
876
+ "forwardOperationalEvents": {
877
+ "type": "boolean"
878
+ },
879
+ "fallbackModeWhenMissing": {
880
+ "enum": [
881
+ "warning",
882
+ "degraded",
883
+ "blocked"
884
+ ]
885
+ }
886
+ }
887
+ },
716
888
  "failureModes": [
717
889
  "adapter-not-registered",
718
890
  "adapter-does-not-support-data-block",
@@ -837,6 +1009,73 @@
837
1009
  "stepId",
838
1010
  "block.blockId"
839
1011
  ],
1012
+ "inputSchema": {
1013
+ "type": "object",
1014
+ "required": [
1015
+ "journeyId",
1016
+ "stepId",
1017
+ "block"
1018
+ ],
1019
+ "properties": {
1020
+ "journeyId": {
1021
+ "type": "string"
1022
+ },
1023
+ "stepId": {
1024
+ "type": "string"
1025
+ },
1026
+ "insert": {
1027
+ "type": "object",
1028
+ "properties": {
1029
+ "mode": {
1030
+ "enum": [
1031
+ "append",
1032
+ "insertBefore",
1033
+ "insertAfter"
1034
+ ]
1035
+ },
1036
+ "relativeToBlockId": {
1037
+ "type": "string"
1038
+ }
1039
+ }
1040
+ },
1041
+ "block": {
1042
+ "type": "object",
1043
+ "required": [
1044
+ "blockId",
1045
+ "kind"
1046
+ ],
1047
+ "properties": {
1048
+ "blockId": {
1049
+ "type": "string"
1050
+ },
1051
+ "kind": {
1052
+ "enum": [
1053
+ "dataCollection",
1054
+ "introHero",
1055
+ "selectionCards",
1056
+ "reviewSections",
1057
+ "successPanel"
1058
+ ]
1059
+ },
1060
+ "formBlockId": {
1061
+ "type": "string"
1062
+ },
1063
+ "formConfigRef": {
1064
+ "type": "string"
1065
+ },
1066
+ "title": {
1067
+ "type": "string"
1068
+ },
1069
+ "description": {
1070
+ "type": "string"
1071
+ },
1072
+ "visibility": {
1073
+ "type": "array"
1074
+ }
1075
+ }
1076
+ }
1077
+ }
1078
+ },
840
1079
  "failureModes": [
841
1080
  "journey-not-found",
842
1081
  "step-not-found",
@@ -916,6 +1155,28 @@
916
1155
  "stepId",
917
1156
  "blockId"
918
1157
  ],
1158
+ "inputSchema": {
1159
+ "type": "object",
1160
+ "required": [
1161
+ "journeyId",
1162
+ "stepId",
1163
+ "blockId"
1164
+ ],
1165
+ "properties": {
1166
+ "journeyId": {
1167
+ "type": "string"
1168
+ },
1169
+ "stepId": {
1170
+ "type": "string"
1171
+ },
1172
+ "blockId": {
1173
+ "type": "string"
1174
+ },
1175
+ "requireNoFieldBindings": {
1176
+ "type": "boolean"
1177
+ }
1178
+ }
1179
+ },
919
1180
  "failureModes": [
920
1181
  "journey-not-found",
921
1182
  "step-not-found",
@@ -1009,6 +1270,43 @@
1009
1270
  "fieldName",
1010
1271
  "contextPath"
1011
1272
  ],
1273
+ "inputSchema": {
1274
+ "type": "object",
1275
+ "required": [
1276
+ "blockId",
1277
+ "fieldName",
1278
+ "contextPath"
1279
+ ],
1280
+ "properties": {
1281
+ "blockId": {
1282
+ "type": "string"
1283
+ },
1284
+ "fieldName": {
1285
+ "type": "string"
1286
+ },
1287
+ "contextPath": {
1288
+ "type": "string"
1289
+ },
1290
+ "mode": {
1291
+ "enum": [
1292
+ "read",
1293
+ "write",
1294
+ "readWrite"
1295
+ ]
1296
+ },
1297
+ "valueMode": {
1298
+ "enum": [
1299
+ "merge",
1300
+ "replace"
1301
+ ]
1302
+ },
1303
+ "delegateFieldMetadataTo": {
1304
+ "enum": [
1305
+ "praxis-metadata-editor"
1306
+ ]
1307
+ }
1308
+ }
1309
+ },
1012
1310
  "failureModes": [
1013
1311
  "block-not-found",
1014
1312
  "field-not-found",
@@ -1336,6 +1634,76 @@
1336
1634
  {
1337
1635
  "chunkIndex": 1,
1338
1636
  "chunkKind": "authoring_manifest",
1637
+ "content": "{\"operationId\":\"snapshot.set\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-editorial-forms\",\"ownerPackage\":\"@praxisui/editorial-forms\",\"configSchemaId\":\"EditorialRuntimeInput\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Set editorial snapshot inputs Effects: compile-domain-patch. Set the onboarding journey as the active editorial path. Prefill the runtime context with the selected plan.\",\"scope\":\"global\",\"target\":{\"kind\":\"snapshot\",\"resolver\":\"editorial-runtime-snapshot\",\"required\":false},\"inputContract\":{\"required\":[\"solutionId\"],\"properties\":[\"solutionId\",\"instanceId\",\"journeyId\",\"stepId\",\"runtimeContextPatch\",\"instanceContextPatch\",\"preserveDiagnostics\"],\"semanticTerms\":[\"solutionId\",\"instanceId\",\"journeyId\",\"stepId\",\"runtimeContextPatch\",\"instanceContextPatch\",\"preserveDiagnostics\"]},\"effects\":[\"compile-domain-patch\"],\"affectedPaths\":[\"solution.solutionId\",\"instance.instanceId\",\"instance.context\",\"runtimeContext\"],\"validators\":[{\"validatorId\":\"snapshot-shape-canonical\",\"level\":\"error\",\"code\":\"EDITORIAL_SNAPSHOT_SHAPE_CANONICAL\",\"description\":\"Resolved snapshot must remain compatible with EditorialRuntimeSnapshot.\"},{\"validatorId\":\"journey-exists\",\"level\":\"error\",\"code\":\"EDITORIAL_JOURNEY_EXISTS\",\"description\":\"Target journey must exist in the editorial solution.\"},{\"validatorId\":\"step-exists\",\"level\":\"error\",\"code\":\"EDITORIAL_STEP_EXISTS\",\"description\":\"Target step must exist in the selected journey.\"},{\"validatorId\":\"diagnostics-preserved\",\"level\":\"error\",\"code\":\"EDITORIAL_DIAGNOSTICS_PRESERVED\",\"description\":\"Patch compilation must not drop runtime diagnostics.\"},{\"validatorId\":\"editorial-round-trip\",\"level\":\"error\",\"code\":\"EDITORIAL_ROUND_TRIP\",\"description\":\"Open, edit, apply/save, reopen and runtime consume must preserve the editorial document.\"}],\"preconditions\":[\"editorial-runtime-inputs-loaded\"],\"submissionImpact\":\"config-only\",\"presentationAffordances\":[],\"positiveExamples\":[{\"id\":\"select-journey\",\"request\":\"Set the onboarding journey as the active editorial path.\",\"operationId\":\"snapshot.set\",\"params\":{\"solutionId\":\"customer-onboarding\",\"journeyId\":\"onboarding\"},\"isPositive\":true},{\"id\":\"merge-runtime-context\",\"request\":\"Prefill the runtime context with the selected plan.\",\"operationId\":\"snapshot.set\",\"params\":{\"solutionId\":\"plan-signup\",\"runtimeContextPatch\":{\"selectedPlan\":\"pro\"}},\"isPositive\":true}],\"negativeExamples\":[]}",
1638
+ "sourcePointer": "projects/praxis-editorial-forms/src/lib/ai/praxis-editorial-forms-authoring-manifest.ts",
1639
+ "contentHash": "11cabd812036a75c2f0649afa19050b535bf42c216995843a2e18bdbfca9bec7",
1640
+ "sourceKind": "component_definition",
1641
+ "sourceId": "praxis-editorial-forms",
1642
+ "corpusVersion": "1.0.0"
1643
+ },
1644
+ {
1645
+ "chunkIndex": 2,
1646
+ "chunkKind": "authoring_manifest",
1647
+ "content": "{\"operationId\":\"fallback.configure\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-editorial-forms\",\"ownerPackage\":\"@praxisui/editorial-forms\",\"configSchemaId\":\"EditorialRuntimeInput\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Configure explicit fallback behavior Effects: compile-domain-patch. Block progression when the required dataCollection adapter is missing.\",\"scope\":\"meta\",\"target\":{\"kind\":\"fallback\",\"resolver\":\"editorial-runtime-fallback-state\",\"required\":false},\"inputContract\":{\"required\":[\"mode\"],\"properties\":[\"mode\",\"diagnosticCode\",\"progressionBlocked\",\"requiresEngineAttention\",\"scope\"],\"semanticTerms\":[\"mode\",\"diagnosticCode\",\"progressionBlocked\",\"requiresEngineAttention\",\"scope\",\"normal\",\"warning\",\"degraded\",\"blocked\",\"scope.journeyId\",\"scope.stepId\",\"scope.blockId\"]},\"effects\":[\"compile-domain-patch\"],\"affectedPaths\":[\"hostConfig.emitOperationalEvents\",\"snapshot.diagnostics.items\"],\"validators\":[{\"validatorId\":\"fallback-explicit\",\"level\":\"error\",\"code\":\"EDITORIAL_FALLBACK_EXPLICIT\",\"description\":\"Fallback behavior must be explicit instead of implied by missing adapter or hidden diagnostics.\"},{\"validatorId\":\"fallback-diagnostic-backed\",\"level\":\"error\",\"code\":\"EDITORIAL_FALLBACK_DIAGNOSTIC_BACKED\",\"description\":\"Warning, degraded and blocked fallback states must be backed by diagnostics.\"},{\"validatorId\":\"fallback-scope-exists\",\"level\":\"error\",\"code\":\"EDITORIAL_FALLBACK_SCOPE_EXISTS\",\"description\":\"Fallback scope must resolve to an existing journey, step or block.\"},{\"validatorId\":\"editorial-round-trip\",\"level\":\"error\",\"code\":\"EDITORIAL_ROUND_TRIP\",\"description\":\"Open, edit, apply/save, reopen and runtime consume must preserve the editorial document.\"}],\"preconditions\":[\"snapshot-resolved\"],\"submissionImpact\":\"config-only\",\"presentationAffordances\":[],\"positiveExamples\":[{\"id\":\"configure-blocked-fallback\",\"request\":\"Block progression when the required dataCollection adapter is missing.\",\"operationId\":\"fallback.configure\",\"params\":{\"mode\":\"blocked\",\"diagnosticCode\":\"data-collection-adapter-missing\",\"progressionBlocked\":true},\"isPositive\":true}],\"negativeExamples\":[]}",
1648
+ "sourcePointer": "projects/praxis-editorial-forms/src/lib/ai/praxis-editorial-forms-authoring-manifest.ts",
1649
+ "contentHash": "40ebbab2f71b23324f435fb21a8ca72f1231c8ec22a52723eb780fddddb61cbb",
1650
+ "sourceKind": "component_definition",
1651
+ "sourceId": "praxis-editorial-forms",
1652
+ "corpusVersion": "1.0.0"
1653
+ },
1654
+ {
1655
+ "chunkIndex": 3,
1656
+ "chunkKind": "authoring_manifest",
1657
+ "content": "{\"operationId\":\"presentation.configure\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-editorial-forms\",\"ownerPackage\":\"@praxisui/editorial-forms\",\"configSchemaId\":\"EditorialRuntimeInput\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Configure editorial presentation Effects: compile-domain-patch. Use a vertical compact stepper with hidden descriptions. Change presentation and also rewrite the collected email value.\",\"scope\":\"skin\",\"target\":{\"kind\":\"presentation\",\"resolver\":\"editorial-solution-presentation\",\"required\":false},\"inputContract\":{\"required\":[],\"properties\":[\"layout\",\"theme\",\"stepper\"],\"semanticTerms\":[\"layout\",\"theme\",\"stepper\",\"layout.orientation\",\"layout.density\",\"layout.maxWidth\",\"layout.shellVariant\",\"layout.spacing\",\"layout.responsive\",\"stepper.visible\",\"stepper.orientation\",\"stepper.showLabels\",\"stepper.showDescriptions\",\"stepper.showConnectors\",\"stepper.connectorStyle\",\"stepper.allowStepJump\",\"horizontal\",\"vertical\",\"compact\",\"comfortable\",\"relaxed\"]},\"effects\":[\"compile-domain-patch\"],\"affectedPaths\":[\"solution.presentation.layout\",\"solution.presentation.theme\",\"solution.presentation.stepper\"],\"validators\":[{\"validatorId\":\"presentation-supported-by-runtime\",\"level\":\"error\",\"code\":\"EDITORIAL_PRESENTATION_SUPPORTED\",\"description\":\"Presentation keys must be supported by the runtime or intentionally diagnosed as unsupported.\"},{\"validatorId\":\"presentation-does-not-mutate-domain-data\",\"level\":\"error\",\"code\":\"EDITORIAL_PRESENTATION_DOMAIN_SAFE\",\"description\":\"Presentation changes must not mutate solution journeys, blocks, field metadata or runtime context data.\"},{\"validatorId\":\"theme-tokens-valid\",\"level\":\"error\",\"code\":\"EDITORIAL_THEME_TOKENS_VALID\",\"description\":\"Theme tokens must be valid runtime CSS variable inputs.\"},{\"validatorId\":\"editorial-round-trip\",\"level\":\"error\",\"code\":\"EDITORIAL_ROUND_TRIP\",\"description\":\"Open, edit, apply/save, reopen and runtime consume must preserve the editorial document.\"}],\"preconditions\":[\"solution-loaded\"],\"submissionImpact\":\"visual-only\",\"presentationAffordances\":[],\"positiveExamples\":[{\"id\":\"configure-stepper\",\"request\":\"Use a vertical compact stepper with hidden descriptions.\",\"operationId\":\"presentation.configure\",\"params\":{\"layout\":{\"orientation\":\"vertical\",\"density\":\"compact\"},\"stepper\":{\"showDescriptions\":false}},\"isPositive\":true}],\"negativeExamples\":[{\"id\":\"reject-presentation-domain-mutation\",\"request\":\"Change presentation and also rewrite the collected email value.\",\"operationId\":\"presentation.configure\",\"params\":{\"layout\":{\"density\":\"relaxed\"},\"runtimeContextPatch\":{\"formData\":{\"email\":\"changed@example.com\"}}},\"isPositive\":false}]}",
1658
+ "sourcePointer": "projects/praxis-editorial-forms/src/lib/ai/praxis-editorial-forms-authoring-manifest.ts",
1659
+ "contentHash": "a832a4b809a686dc9daf6275dfe4b3392a5512f5b751bd43cbabefcb0706fc5e",
1660
+ "sourceKind": "component_definition",
1661
+ "sourceId": "praxis-editorial-forms",
1662
+ "corpusVersion": "1.0.0"
1663
+ },
1664
+ {
1665
+ "chunkIndex": 4,
1666
+ "chunkKind": "authoring_manifest",
1667
+ "content": "{\"operationId\":\"adapter.bind\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-editorial-forms\",\"ownerPackage\":\"@praxisui/editorial-forms\",\"configSchemaId\":\"EditorialRuntimeInput\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Bind data block adapter Effects: compile-domain-patch. Bind the dynamic-form adapter for dataCollection blocks. Render a dataCollection block with an adapter that is not registered.\",\"scope\":\"dataBinding\",\"target\":{\"kind\":\"adapter\",\"resolver\":\"editorial-data-block-adapter-registry\",\"required\":true},\"inputContract\":{\"required\":[\"adapterId\",\"dataBlockType\"],\"properties\":[\"adapterId\",\"dataBlockType\",\"componentRef\",\"requiredInputs\",\"forwardOperationalEvents\",\"fallbackModeWhenMissing\"],\"semanticTerms\":[\"adapterId\",\"dataBlockType\",\"componentRef\",\"requiredInputs\",\"forwardOperationalEvents\",\"fallbackModeWhenMissing\",\"dataCollection\",\"warning\",\"degraded\",\"blocked\"]},\"effects\":[\"compile-domain-patch\"],\"affectedPaths\":[\"hostConfig.forwardAdapterOperationalEvents\",\"snapshot.diagnostics.items\"],\"validators\":[{\"validatorId\":\"adapter-exists\",\"level\":\"error\",\"code\":\"EDITORIAL_ADAPTER_EXISTS\",\"description\":\"Requested adapter must exist in EditorialDataBlockAdapterRegistry.\"},{\"validatorId\":\"adapter-supports-data-block\",\"level\":\"error\",\"code\":\"EDITORIAL_ADAPTER_SUPPORTS_DATA_BLOCK\",\"description\":\"Requested adapter must support the target data block context.\"},{\"validatorId\":\"adapter-component-valid\",\"level\":\"error\",\"code\":\"EDITORIAL_ADAPTER_COMPONENT_VALID\",\"description\":\"Adapter component must expose the inputs required by the adapter contract.\"},{\"validatorId\":\"fallback-explicit\",\"level\":\"error\",\"code\":\"EDITORIAL_FALLBACK_EXPLICIT\",\"description\":\"Fallback behavior must be explicit instead of implied by missing adapter or hidden diagnostics.\"},{\"validatorId\":\"editorial-round-trip\",\"level\":\"error\",\"code\":\"EDITORIAL_ROUND_TRIP\",\"description\":\"Open, edit, apply/save, reopen and runtime consume must preserve the editorial document.\"}],\"preconditions\":[\"adapter-registry-loaded\"],\"submissionImpact\":\"config-only\",\"presentationAffordances\":[],\"positiveExamples\":[{\"id\":\"bind-dynamic-form-adapter\",\"request\":\"Bind the dynamic-form adapter for dataCollection blocks.\",\"operationId\":\"adapter.bind\",\"params\":{\"adapterId\":\"dynamic-form\",\"dataBlockType\":\"dataCollection\",\"requiredInputs\":[\"config\",\"formId\",\"editorialContext\"],\"fallbackModeWhenMissing\":\"blocked\"},\"isPositive\":true}],\"negativeExamples\":[{\"id\":\"reject-missing-adapter\",\"request\":\"Render a dataCollection block with an adapter that is not registered.\",\"operationId\":\"adapter.bind\",\"params\":{\"adapterId\":\"unknown-form-engine\",\"dataBlockType\":\"dataCollection\"},\"isPositive\":false}]}",
1668
+ "sourcePointer": "projects/praxis-editorial-forms/src/lib/ai/praxis-editorial-forms-authoring-manifest.ts",
1669
+ "contentHash": "40e71ef8a94f64d3f4298e9d4c5210f27113ee61cfe586492c977f7025fe7289",
1670
+ "sourceKind": "component_definition",
1671
+ "sourceId": "praxis-editorial-forms",
1672
+ "corpusVersion": "1.0.0"
1673
+ },
1674
+ {
1675
+ "chunkIndex": 5,
1676
+ "chunkKind": "authoring_manifest",
1677
+ "content": "{\"operationId\":\"dataBlock.add\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-editorial-forms\",\"ownerPackage\":\"@praxisui/editorial-forms\",\"configSchemaId\":\"EditorialRuntimeInput\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Add editorial data block Effects: compile-domain-patch. Add a consent form block to the review step. Add another block using the existing consent-form id.\",\"scope\":\"section\",\"target\":{\"kind\":\"dataBlock\",\"resolver\":\"editorial-journey-step-block-by-id\",\"required\":true},\"inputContract\":{\"required\":[\"journeyId\",\"stepId\",\"block\"],\"properties\":[\"journeyId\",\"stepId\",\"insert\",\"block\"],\"semanticTerms\":[\"journeyId\",\"stepId\",\"insert\",\"block\",\"insert.mode\",\"insert.relativeToBlockId\",\"block.blockId\",\"block.kind\",\"block.formBlockId\",\"block.formConfigRef\",\"block.title\",\"block.description\",\"block.visibility\",\"append\",\"insertBefore\",\"insertAfter\",\"dataCollection\",\"introHero\",\"selectionCards\",\"reviewSections\",\"successPanel\"]},\"effects\":[\"compile-domain-patch\"],\"affectedPaths\":[\"solution.journeys[].steps[].blocks\"],\"validators\":[{\"validatorId\":\"data-block-id-unique\",\"level\":\"error\",\"code\":\"EDITORIAL_DATA_BLOCK_ID_UNIQUE\",\"description\":\"Block ids must be unique within the resolved editorial step.\"},{\"validatorId\":\"journey-exists\",\"level\":\"error\",\"code\":\"EDITORIAL_JOURNEY_EXISTS\",\"description\":\"Target journey must exist in the editorial solution.\"},{\"validatorId\":\"step-exists\",\"level\":\"error\",\"code\":\"EDITORIAL_STEP_EXISTS\",\"description\":\"Target step must exist in the selected journey.\"},{\"validatorId\":\"adapter-supports-data-block\",\"level\":\"error\",\"code\":\"EDITORIAL_ADAPTER_SUPPORTS_DATA_BLOCK\",\"description\":\"Requested adapter must support the target data block context.\"},{\"validatorId\":\"editorial-round-trip\",\"level\":\"error\",\"code\":\"EDITORIAL_ROUND_TRIP\",\"description\":\"Open, edit, apply/save, reopen and runtime consume must preserve the editorial document.\"}],\"preconditions\":[\"solution-loaded\"],\"submissionImpact\":\"config-only\",\"presentationAffordances\":[],\"positiveExamples\":[{\"id\":\"add-data-block\",\"request\":\"Add a consent form block to the review step.\",\"operationId\":\"dataBlock.add\",\"params\":{\"journeyId\":\"privacy\",\"stepId\":\"review\",\"block\":{\"blockId\":\"consent-form\",\"kind\":\"dataCollection\",\"formBlockId\":\"consent-form\"}},\"isPositive\":true}],\"negativeExamples\":[{\"id\":\"reject-duplicate-block\",\"request\":\"Add another block using the existing consent-form id.\",\"operationId\":\"dataBlock.add\",\"params\":{\"journeyId\":\"privacy\",\"stepId\":\"review\",\"block\":{\"blockId\":\"consent-form\",\"kind\":\"dataCollection\",\"formBlockId\":\"consent-form-copy\"}},\"isPositive\":false}]}",
1678
+ "sourcePointer": "projects/praxis-editorial-forms/src/lib/ai/praxis-editorial-forms-authoring-manifest.ts",
1679
+ "contentHash": "371e0a4cf04993d7e2b9e09038d024f64764cbadc0146894d81e2594a098e7a2",
1680
+ "sourceKind": "component_definition",
1681
+ "sourceId": "praxis-editorial-forms",
1682
+ "corpusVersion": "1.0.0"
1683
+ },
1684
+ {
1685
+ "chunkIndex": 6,
1686
+ "chunkKind": "authoring_manifest",
1687
+ "content": "{\"operationId\":\"dataBlock.remove\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-editorial-forms\",\"ownerPackage\":\"@praxisui/editorial-forms\",\"configSchemaId\":\"EditorialRuntimeInput\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Remove editorial data block Effects: compile-domain-patch. Remove the unused legacy consent block.\",\"scope\":\"section\",\"target\":{\"kind\":\"dataBlock\",\"resolver\":\"editorial-journey-step-block-by-id\",\"required\":true},\"inputContract\":{\"required\":[\"journeyId\",\"stepId\",\"blockId\"],\"properties\":[\"journeyId\",\"stepId\",\"blockId\",\"requireNoFieldBindings\"],\"semanticTerms\":[\"journeyId\",\"stepId\",\"blockId\",\"requireNoFieldBindings\"]},\"effects\":[\"compile-domain-patch\"],\"affectedPaths\":[\"solution.journeys[].steps[].blocks\"],\"validators\":[{\"validatorId\":\"data-block-exists\",\"level\":\"error\",\"code\":\"EDITORIAL_DATA_BLOCK_EXISTS\",\"description\":\"Target data block must exist before destructive or binding operations.\"},{\"validatorId\":\"field-binding-target-exists\",\"level\":\"error\",\"code\":\"EDITORIAL_FIELD_BINDING_TARGET_EXISTS\",\"description\":\"Field binding must target an existing dataCollection block and field.\"},{\"validatorId\":\"editorial-round-trip\",\"level\":\"error\",\"code\":\"EDITORIAL_ROUND_TRIP\",\"description\":\"Open, edit, apply/save, reopen and runtime consume must preserve the editorial document.\"}],\"preconditions\":[\"solution-loaded\",\"explicit-confirmation-provided\"],\"submissionImpact\":\"config-only\",\"presentationAffordances\":[],\"positiveExamples\":[{\"id\":\"remove-block\",\"request\":\"Remove the unused legacy consent block.\",\"operationId\":\"dataBlock.remove\",\"params\":{\"journeyId\":\"privacy\",\"stepId\":\"review\",\"blockId\":\"legacy-consent\",\"requireNoFieldBindings\":true},\"isPositive\":true}],\"negativeExamples\":[]}",
1688
+ "sourcePointer": "projects/praxis-editorial-forms/src/lib/ai/praxis-editorial-forms-authoring-manifest.ts",
1689
+ "contentHash": "777424395356f63ef8813942beec51ce20ad267eb957e7b5c40fd230126f121c",
1690
+ "sourceKind": "component_definition",
1691
+ "sourceId": "praxis-editorial-forms",
1692
+ "corpusVersion": "1.0.0"
1693
+ },
1694
+ {
1695
+ "chunkIndex": 7,
1696
+ "chunkKind": "authoring_manifest",
1697
+ "content": "{\"operationId\":\"fieldBinding.set\",\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-editorial-forms\",\"ownerPackage\":\"@praxisui/editorial-forms\",\"configSchemaId\":\"EditorialRuntimeInput\",\"chunkSection\":\"operation_card\",\"semanticSummary\":\"Set editorial field binding Effects: compile-domain-patch. Bind the email field into runtimeContext.formData.email. Change the control type inside editorial forms instead of metadata editor.\",\"scope\":\"fieldMetadataPath\",\"target\":{\"kind\":\"fieldBinding\",\"resolver\":\"editorial-data-block-field-binding\",\"required\":true},\"inputContract\":{\"required\":[\"blockId\",\"fieldName\",\"contextPath\"],\"properties\":[\"blockId\",\"fieldName\",\"contextPath\",\"mode\",\"valueMode\",\"delegateFieldMetadataTo\"],\"semanticTerms\":[\"blockId\",\"fieldName\",\"contextPath\",\"mode\",\"valueMode\",\"delegateFieldMetadataTo\",\"read\",\"write\",\"readWrite\",\"merge\",\"replace\",\"praxis-metadata-editor\"]},\"effects\":[\"compile-domain-patch\"],\"affectedPaths\":[\"runtimeContext.formData\"],\"validators\":[{\"validatorId\":\"field-binding-target-exists\",\"level\":\"error\",\"code\":\"EDITORIAL_FIELD_BINDING_TARGET_EXISTS\",\"description\":\"Field binding must target an existing dataCollection block and field.\"},{\"validatorId\":\"field-binding-path-valid\",\"level\":\"error\",\"code\":\"EDITORIAL_FIELD_BINDING_PATH_VALID\",\"description\":\"Field binding context path must be deterministic and inside governed runtime context data.\"},{\"validatorId\":\"delegates-field-metadata\",\"level\":\"error\",\"code\":\"EDITORIAL_DELEGATES_FIELD_METADATA\",\"description\":\"FieldMetadata shape changes must be delegated to the metadata-editor manifest instead of duplicated here.\"},{\"validatorId\":\"editorial-round-trip\",\"level\":\"error\",\"code\":\"EDITORIAL_ROUND_TRIP\",\"description\":\"Open, edit, apply/save, reopen and runtime consume must preserve the editorial document.\"}],\"preconditions\":[\"data-block-resolved\",\"field-metadata-loaded\"],\"submissionImpact\":\"affects-schema-backed-data\",\"presentationAffordances\":[],\"positiveExamples\":[{\"id\":\"set-field-binding\",\"request\":\"Bind the email field into runtimeContext.formData.email.\",\"operationId\":\"fieldBinding.set\",\"params\":{\"blockId\":\"contact-form\",\"fieldName\":\"email\",\"contextPath\":\"formData.email\",\"mode\":\"readWrite\",\"delegateFieldMetadataTo\":\"praxis-metadata-editor\"},\"isPositive\":true}],\"negativeExamples\":[{\"id\":\"reject-field-metadata-duplication\",\"request\":\"Change the control type inside editorial forms instead of metadata editor.\",\"operationId\":\"fieldBinding.set\",\"params\":{\"blockId\":\"contact-form\",\"fieldName\":\"email\",\"contextPath\":\"formData.email\",\"controlType\":\"select\"},\"isPositive\":false}]}",
1698
+ "sourcePointer": "projects/praxis-editorial-forms/src/lib/ai/praxis-editorial-forms-authoring-manifest.ts",
1699
+ "contentHash": "664e5f9d238eb4e31baa0db5c91ade7c407483058779f0ac8832f93d4f9355a9",
1700
+ "sourceKind": "component_definition",
1701
+ "sourceId": "praxis-editorial-forms",
1702
+ "corpusVersion": "1.0.0"
1703
+ },
1704
+ {
1705
+ "chunkIndex": 8,
1706
+ "chunkKind": "authoring_manifest",
1339
1707
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-editorial-forms\",\"ownerPackage\":\"@praxisui/editorial-forms\",\"configSchemaId\":\"EditorialRuntimeInput\",\"chunkSection\":\"identity\"}",
1340
1708
  "sourcePointer": "projects/praxis-editorial-forms/src/lib/ai/praxis-editorial-forms-authoring-manifest.ts",
1341
1709
  "contentHash": "b3ea9fbab6405d181d3736ff322181a8c41040ef168c2072eb42c1a92594e40f",
@@ -1344,7 +1712,7 @@
1344
1712
  "corpusVersion": "1.0.0"
1345
1713
  },
1346
1714
  {
1347
- "chunkIndex": 2,
1715
+ "chunkIndex": 9,
1348
1716
  "chunkKind": "authoring_manifest",
1349
1717
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-editorial-forms\",\"ownerPackage\":\"@praxisui/editorial-forms\",\"configSchemaId\":\"EditorialRuntimeInput\",\"chunkSection\":\"runtimeInputs\",\"runtimeInputs\":[{\"name\":\"solution\",\"type\":\"EditorialSolutionDefinition | null\",\"description\":\"Canonical editorial solution definition with journeys, steps, blocks and presentation.\"},{\"name\":\"instance\",\"type\":\"EditorialTemplateInstance | null\",\"description\":\"Runtime instance with selected journey, context, overrides and compatibility form configs.\"},{\"name\":\"runtimeContext\",\"type\":\"Record<string, unknown> | null\",\"description\":\"Host-provided immutable context merged into the resolved editorial snapshot.\"},{\"name\":\"hostConfig\",\"type\":\"EditorialRuntimeHostConfig | null\",\"description\":\"Host controls for operational event and adapter event forwarding.\"},{\"name\":\"snapshotChange\",\"type\":\"EditorialRuntimeSnapshot\",\"description\":\"Resolved runtime snapshot emitted to hosts for product UX and audit derivation.\"},{\"name\":\"fallbackChange\",\"type\":\"EditorialRuntimeFallbackState\",\"description\":\"Operational fallback state emitted when diagnostics affect runtime health.\"},{\"name\":\"operationalEvent\",\"type\":\"EditorialRuntimeOperationalEvent\",\"description\":\"Technical diagnostics event stream for logs, monitoring and runbooks.\"}]}",
1350
1718
  "sourcePointer": "projects/praxis-editorial-forms/src/lib/ai/praxis-editorial-forms-authoring-manifest.ts",
@@ -1354,7 +1722,7 @@
1354
1722
  "corpusVersion": "1.0.0"
1355
1723
  },
1356
1724
  {
1357
- "chunkIndex": 3,
1725
+ "chunkIndex": 10,
1358
1726
  "chunkKind": "authoring_manifest",
1359
1727
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-editorial-forms\",\"ownerPackage\":\"@praxisui/editorial-forms\",\"configSchemaId\":\"EditorialRuntimeInput\",\"chunkSection\":\"editableTargets\",\"editableTargets\":[{\"kind\":\"snapshot\",\"resolver\":\"editorial-runtime-snapshot\",\"description\":\"Resolved editorial state from solution, instance and runtime context.\"},{\"kind\":\"fallback\",\"resolver\":\"editorial-runtime-fallback-state\",\"description\":\"Explicit operational fallback state derived from runtime diagnostics.\"},{\"kind\":\"presentation\",\"resolver\":\"editorial-solution-presentation\",\"description\":\"Editorial presentation contract under solution.presentation.\"},{\"kind\":\"adapter\",\"resolver\":\"editorial-data-block-adapter-registry\",\"description\":\"Optional dataCollection adapter binding and compatibility requirements.\"},{\"kind\":\"dataBlock\",\"resolver\":\"editorial-journey-step-block-by-id\",\"description\":\"Editorial blocks inside journey steps, including dataCollection and presentational blocks.\"},{\"kind\":\"fieldBinding\",\"resolver\":\"editorial-data-block-field-binding\",\"description\":\"Field-to-runtime-context binding for dataCollection blocks without redefining FieldMetadata.\"}]}",
1360
1728
  "sourcePointer": "projects/praxis-editorial-forms/src/lib/ai/praxis-editorial-forms-authoring-manifest.ts",
@@ -1364,27 +1732,27 @@
1364
1732
  "corpusVersion": "1.0.0"
1365
1733
  },
1366
1734
  {
1367
- "chunkIndex": 4,
1735
+ "chunkIndex": 11,
1368
1736
  "chunkKind": "authoring_manifest",
1369
- "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-editorial-forms\",\"ownerPackage\":\"@praxisui/editorial-forms\",\"configSchemaId\":\"EditorialRuntimeInput\",\"chunkSection\":\"operations\",\"operations\":[{\"operationId\":\"snapshot.set\",\"title\":\"Set editorial snapshot inputs\",\"scope\":\"global\",\"targetKind\":\"snapshot\",\"target\":{\"kind\":\"snapshot\",\"resolver\":\"editorial-runtime-snapshot\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"solutionId\"],\"properties\":{\"solutionId\":{\"type\":\"string\"},\"instanceId\":{\"type\":\"string\"},\"journeyId\":{\"type\":\"string\"},\"stepId\":{\"type\":\"string\"},\"runtimeContextPatch\":{\"type\":\"object\"},\"instanceContextPatch\":{\"type\":\"object\"},\"preserveDiagnostics\":{\"type\":\"boolean\"}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"editorial-snapshot-set\",\"handlerContract\":{\"reads\":[\"EditorialSolutionDefinition\",\"EditorialTemplateInstance\",\"runtimeContext\",\"resolveEditorialRuntimeSnapshot\"],\"writes\":[\"solution.solutionId\",\"instance.instanceId\",\"instance.context\",\"runtimeContext\"],\"identityKeys\":[\"solutionId\",\"instanceId\",\"journeyId\"],\"failureModes\":[\"solution-not-found\",\"journey-not-found\",\"step-not-found\",\"snapshot-shape-invalid\",\"diagnostics-lost\"],\"description\":\"Compiles a deterministic patch to editorial runtime inputs, validates the requested journey/step against the resolved snapshot and requires diagnostics to be preserved.\"}}],\"validators\":[\"snapshot-shape-canonical\",\"journey-exists\",\"step-exists\",\"diagnostics-preserved\",\"editorial-round-trip\"],\"affectedPaths\":[\"solution.solutionId\",\"instance.instanceId\",\"instance.context\",\"runtimeContext\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"editorial-runtime-inputs-loaded\"],\"destructive\":false,\"requiresConfirmation\":false},{\"operationId\":\"fallback.configure\",\"title\":\"Configure explicit fallback behavior\",\"scope\":\"meta\",\"targetKind\":\"fallback\",\"target\":{\"kind\":\"fallback\",\"resolver\":\"editorial-runtime-fallback-state\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"mode\"],\"properties\":{\"mode\":{\"enum\":[\"normal\",\"warning\",\"degraded\",\"blocked\"]},\"diagnosticCode\":{\"type\":\"string\"},\"progressionBlocked\":{\"type\":\"boolean\"},\"requiresEngineAttention\":{\"type\":\"boolean\"},\"scope\":{\"type\":\"object\",\"properties\":{\"journeyId\":{\"type\":\"string\"},\"stepId\":{\"type\":\"string\"},\"blockId\":{\"type\":\"string\"}}}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"editorial-fallback-configure\",\"handlerContract\":{\"reads\":[\"EditorialRuntimeDiagnostics\",\"deriveRuntimeFallbackState\",\"EditorialRuntimeFallbackScope\"],\"writes\":[\"hostConfig.emitOperationalEvents\",\"snapshot.diagnostics.items\"],\"identityKeys\":[\"mode\",\"diagnosticCode\",\"scope.journeyId\",\"scope.stepId\"],\"failureModes\":[\"fallback-mode-invalid\",\"blocking-diagnostic-missing\",\"scope-not-found\",\"implicit-degradation-not-allowed\"],\"description\":\"Requires fallback policy to be explicit and tied to snapshot diagnostics, because fallback state is derived by deriveRuntimeFallbackState instead of persisted as domain data.\"}}],\"validators\":[\"fallback-explicit\",\"fallback-diagnostic-backed\",\"fallback-scope-exists\",\"editorial-round-trip\"],\"affectedPaths\":[\"hostConfig.emitOperationalEvents\",\"snapshot.diagnostics.items\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"snapshot-resolved\"],\"destructive\":false,\"requiresConfirmation\":false},{\"operationId\":\"presentation.configure\",\"title\":\"Configure editorial presentation\",\"scope\":\"skin\",\"targetKind\":\"presentation\",\"target\":{\"kind\":\"presentation\",\"resolver\":\"editorial-solution-presentation\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"layout\":{\"type\":\"object\",\"properties\":{\"orientation\":{\"enum\":[\"horizontal\",\"vertical\"]},\"density\":{\"enum\":[\"compact\",\"comfortable\",\"relaxed\"]},\"maxWidth\":{\"type\":\"string\"},\"shellVariant\":{\"type\":\"string\"},\"spacing\":{\"type\":\"object\"},\"responsive\":{\"type\":\"object\"}}},\"theme\":{\"type\":\"object\"},\"stepper\":{\"type\":\"object\",\"properties\":{\"visible\":{\"type\":\"boolean\"},\"orientation\":{\"enum\":[\"horizontal\",\"vertical\"]},\"showLabels\":{\"type\":\"boolean\"},\"showDescriptions\":{\"type\":\"boolean\"},\"showConnectors\":{\"type\":\"boolean\"},\"connectorStyle\":{\"type\":\"string\"},\"allowStepJump\":{\"type\":\"boolean\"}}}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"editorial-presentation-configure\",\"handlerContract\":{\"reads\":[\"solution.presentation\",\"buildRuntimeLayoutCss\",\"buildRuntimeCssVars\",\"resolveRuntimeOrientation\"],\"writes\":[\"solution.presentation.layout\",\"solution.presentation.theme\",\"solution.presentation.stepper\"],\"identityKeys\":[\"solutionId\",\"presentation.layout.orientation\",\"presentation.stepper.orientation\"],\"failureModes\":[\"presentation-key-unsupported\",\"theme-token-invalid\",\"domain-data-mutation-detected\",\"renderer-coverage-missing\"],\"description\":\"Applies presentation-only changes under solution.presentation and rejects changes that mutate editorial domain data.\"}}],\"validators\":[\"presentation-supported-by-runtime\",\"presentation-does-not-mutate-domain-data\",\"theme-tokens-valid\",\"editorial-round-trip\"],\"affectedPaths\":[\"solution.presentation.layout\",\"solution.presentation.theme\",\"solution.presentation.stepper\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"solution-loaded\"],\"destructive\":false,\"requiresConfirmation\":false},{\"operationId\":\"adapter.bind\",\"title\":\"Bind data block adapter\",\"scope\":\"dataBinding\",\"targetKind\":\"adapter\",\"target\":{\"kind\":\"adapter\",\"resolver\":\"editorial-data-block-adapter-registry\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"adapterId\",\"dataBlockType\"],\"properties\":{\"adapterId\":{\"type\":\"string\"},\"dataBlockType\":{\"enum\":[\"dataCollection\"]},\"componentRef\":{\"type\":\"string\"},\"requiredInputs\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"forwardOperationalEvents\":{\"type\":\"boolean\"},\"fallbackModeWhenMissing\":{\"enum\":[\"warning\",\"degraded\",\"blocked\"]}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"editorial-adapter-bind\",\"handlerContract\":{\"reads\":[\"EDITORIAL_DATA_BLOCK_ADAPTER\",\"EditorialDataBlockAdapterRegistry\",\"EditorialDataBlockContext\",\"ComponentDocMeta\"],\"writes\":[\"hostConfig.forwardAdapterOperationalEvents\",\"snapshot.diagnostics.items\"],\"identityKeys\":[\"adapterId\",\"dataBlockType\"],\"failureModes\":[\"adapter-not-registered\",\"adapter-does-not-support-data-block\",\"adapter-component-invalid\",\"fallback-policy-missing\"],\"description\":\"Validates the external provider binding for a dataCollection adapter and records the host operational-event policy required when the adapter is missing or incompatible.\"}}],\"validators\":[\"adapter-exists\",\"adapter-supports-data-block\",\"adapter-component-valid\",\"fallback-explicit\",\"editorial-round-trip\"],\"affectedPaths\":[\"hostConfig.forwardAdapterOperationalEvents\",\"snapshot.diagnostics.items\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"adapter-registry-loaded\"],\"destructive\":false,\"requiresConfirmation\":false}]}",
1737
+ "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-editorial-forms\",\"ownerPackage\":\"@praxisui/editorial-forms\",\"configSchemaId\":\"EditorialRuntimeInput\",\"chunkSection\":\"operations\",\"operations\":[{\"operationId\":\"snapshot.set\",\"title\":\"Set editorial snapshot inputs\",\"scope\":\"global\",\"targetKind\":\"snapshot\",\"target\":{\"kind\":\"snapshot\",\"resolver\":\"editorial-runtime-snapshot\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"solutionId\"],\"properties\":{\"solutionId\":{\"type\":\"string\"},\"instanceId\":{\"type\":\"string\"},\"journeyId\":{\"type\":\"string\"},\"stepId\":{\"type\":\"string\"},\"runtimeContextPatch\":{\"type\":\"object\"},\"instanceContextPatch\":{\"type\":\"object\"},\"preserveDiagnostics\":{\"type\":\"boolean\"}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"editorial-snapshot-set\",\"handlerContract\":{\"reads\":[\"EditorialSolutionDefinition\",\"EditorialTemplateInstance\",\"runtimeContext\",\"resolveEditorialRuntimeSnapshot\"],\"writes\":[\"solution.solutionId\",\"instance.instanceId\",\"instance.context\",\"runtimeContext\"],\"identityKeys\":[\"solutionId\",\"instanceId\",\"journeyId\"],\"inputSchema\":{\"type\":\"object\",\"required\":[\"solutionId\"],\"properties\":{\"solutionId\":{\"type\":\"string\"},\"instanceId\":{\"type\":\"string\"},\"journeyId\":{\"type\":\"string\"},\"stepId\":{\"type\":\"string\"},\"runtimeContextPatch\":{\"type\":\"object\"},\"instanceContextPatch\":{\"type\":\"object\"},\"preserveDiagnostics\":{\"type\":\"boolean\"}}},\"failureModes\":[\"solution-not-found\",\"journey-not-found\",\"step-not-found\",\"snapshot-shape-invalid\",\"diagnostics-lost\"],\"description\":\"Compiles a deterministic patch to editorial runtime inputs, validates the requested journey/step against the resolved snapshot and requires diagnostics to be preserved.\"}}],\"validators\":[\"snapshot-shape-canonical\",\"journey-exists\",\"step-exists\",\"diagnostics-preserved\",\"editorial-round-trip\"],\"affectedPaths\":[\"solution.solutionId\",\"instance.instanceId\",\"instance.context\",\"runtimeContext\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"editorial-runtime-inputs-loaded\"],\"destructive\":false,\"requiresConfirmation\":false},{\"operationId\":\"fallback.configure\",\"title\":\"Configure explicit fallback behavior\",\"scope\":\"meta\",\"targetKind\":\"fallback\",\"target\":{\"kind\":\"fallback\",\"resolver\":\"editorial-runtime-fallback-state\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"required\":[\"mode\"],\"properties\":{\"mode\":{\"enum\":[\"normal\",\"warning\",\"degraded\",\"blocked\"]},\"diagnosticCode\":{\"type\":\"string\"},\"progressionBlocked\":{\"type\":\"boolean\"},\"requiresEngineAttention\":{\"type\":\"boolean\"},\"scope\":{\"type\":\"object\",\"properties\":{\"journeyId\":{\"type\":\"string\"},\"stepId\":{\"type\":\"string\"},\"blockId\":{\"type\":\"string\"}}}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"editorial-fallback-configure\",\"handlerContract\":{\"reads\":[\"EditorialRuntimeDiagnostics\",\"deriveRuntimeFallbackState\",\"EditorialRuntimeFallbackScope\"],\"writes\":[\"hostConfig.emitOperationalEvents\",\"snapshot.diagnostics.items\"],\"identityKeys\":[\"mode\",\"diagnosticCode\",\"scope.journeyId\",\"scope.stepId\"],\"inputSchema\":{\"type\":\"object\",\"required\":[\"mode\"],\"properties\":{\"mode\":{\"enum\":[\"normal\",\"warning\",\"degraded\",\"blocked\"]},\"diagnosticCode\":{\"type\":\"string\"},\"progressionBlocked\":{\"type\":\"boolean\"},\"requiresEngineAttention\":{\"type\":\"boolean\"},\"scope\":{\"type\":\"object\",\"properties\":{\"journeyId\":{\"type\":\"string\"},\"stepId\":{\"type\":\"string\"},\"blockId\":{\"type\":\"string\"}}}}},\"failureModes\":[\"fallback-mode-invalid\",\"blocking-diagnostic-missing\",\"scope-not-found\",\"implicit-degradation-not-allowed\"],\"description\":\"Requires fallback policy to be explicit and tied to snapshot diagnostics, because fallback state is derived by deriveRuntimeFallbackState instead of persisted as domain data.\"}}],\"validators\":[\"fallback-explicit\",\"fallback-diagnostic-backed\",\"fallback-scope-exists\",\"editorial-round-trip\"],\"affectedPaths\":[\"hostConfig.emitOperationalEvents\",\"snapshot.diagnostics.items\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"snapshot-resolved\"],\"destructive\":false,\"requiresConfirmation\":false},{\"operationId\":\"presentation.configure\",\"title\":\"Configure editorial presentation\",\"scope\":\"skin\",\"targetKind\":\"presentation\",\"target\":{\"kind\":\"presentation\",\"resolver\":\"editorial-solution-presentation\",\"ambiguityPolicy\":\"fail\",\"required\":false},\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"layout\":{\"type\":\"object\",\"properties\":{\"orientation\":{\"enum\":[\"horizontal\",\"vertical\"]},\"density\":{\"enum\":[\"compact\",\"comfortable\",\"relaxed\"]},\"maxWidth\":{\"type\":\"string\"},\"shellVariant\":{\"type\":\"string\"},\"spacing\":{\"type\":\"object\"},\"responsive\":{\"type\":\"object\"}}},\"theme\":{\"type\":\"object\"},\"stepper\":{\"type\":\"object\",\"properties\":{\"visible\":{\"type\":\"boolean\"},\"orientation\":{\"enum\":[\"horizontal\",\"vertical\"]},\"showLabels\":{\"type\":\"boolean\"},\"showDescriptions\":{\"type\":\"boolean\"},\"showConnectors\":{\"type\":\"boolean\"},\"connectorStyle\":{\"type\":\"string\"},\"allowStepJump\":{\"type\":\"boolean\"}}}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"editorial-presentation-configure\",\"handlerContract\":{\"reads\":[\"solution.presentation\",\"buildRuntimeLayoutCss\",\"buildRuntimeCssVars\",\"resolveRuntimeOrientation\"],\"writes\":[\"solution.presentation.layout\",\"solution.presentation.theme\",\"solution.presentation.stepper\"],\"identityKeys\":[\"solutionId\",\"presentation.layout.orientation\",\"presentation.stepper.orientation\"],\"inputSchema\":{\"type\":\"object\",\"minProperties\":1,\"properties\":{\"layout\":{\"type\":\"object\",\"properties\":{\"orientation\":{\"enum\":[\"horizontal\",\"vertical\"]},\"density\":{\"enum\":[\"compact\",\"comfortable\",\"relaxed\"]},\"maxWidth\":{\"type\":\"string\"},\"shellVariant\":{\"type\":\"string\"},\"spacing\":{\"type\":\"object\"},\"responsive\":{\"type\":\"object\"}}},\"theme\":{\"type\":\"object\"},\"stepper\":{\"type\":\"object\",\"properties\":{\"visible\":{\"type\":\"boolean\"},\"orientation\":{\"enum\":[\"horizontal\",\"vertical\"]},\"showLabels\":{\"type\":\"boolean\"},\"showDescriptions\":{\"type\":\"boolean\"},\"showConnectors\":{\"type\":\"boolean\"},\"connectorStyle\":{\"type\":\"string\"},\"allowStepJump\":{\"type\":\"boolean\"}}}}},\"failureModes\":[\"presentation-key-unsupported\",\"theme-token-invalid\",\"domain-data-mutation-detected\",\"renderer-coverage-missing\"],\"description\":\"Applies presentation-only changes under solution.presentation and rejects changes that mutate editorial domain data.\"}}],\"validators\":[\"presentation-supported-by-runtime\",\"presentation-does-not-mutate-domain-data\",\"theme-tokens-valid\",\"editorial-round-trip\"],\"affectedPaths\":[\"solution.presentation.layout\",\"solution.presentation.theme\",\"solution.presentation.stepper\"],\"submissionImpact\":\"visual-only\",\"preconditions\":[\"solution-loaded\"],\"destructive\":false,\"requiresConfirmation\":false}]}",
1370
1738
  "sourcePointer": "projects/praxis-editorial-forms/src/lib/ai/praxis-editorial-forms-authoring-manifest.ts",
1371
- "contentHash": "adfacafee488e156319c4698948f409f2b48e310c553b3084920af077272c01f",
1739
+ "contentHash": "2870ebe9a08cb74b8e7fff4bbc587e2aab9740478ee21b3ab8f4e1b87289a027",
1372
1740
  "sourceKind": "component_definition",
1373
1741
  "sourceId": "praxis-editorial-forms",
1374
1742
  "corpusVersion": "1.0.0"
1375
1743
  },
1376
1744
  {
1377
- "chunkIndex": 5,
1745
+ "chunkIndex": 12,
1378
1746
  "chunkKind": "authoring_manifest",
1379
- "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-editorial-forms\",\"ownerPackage\":\"@praxisui/editorial-forms\",\"configSchemaId\":\"EditorialRuntimeInput\",\"chunkSection\":\"operations\",\"operations\":[{\"operationId\":\"dataBlock.add\",\"title\":\"Add editorial data block\",\"scope\":\"section\",\"targetKind\":\"dataBlock\",\"target\":{\"kind\":\"dataBlock\",\"resolver\":\"editorial-journey-step-block-by-id\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"journeyId\",\"stepId\",\"block\"],\"properties\":{\"journeyId\":{\"type\":\"string\"},\"stepId\":{\"type\":\"string\"},\"insert\":{\"type\":\"object\",\"properties\":{\"mode\":{\"enum\":[\"append\",\"insertBefore\",\"insertAfter\"]},\"relativeToBlockId\":{\"type\":\"string\"}}},\"block\":{\"type\":\"object\",\"required\":[\"blockId\",\"kind\"],\"properties\":{\"blockId\":{\"type\":\"string\"},\"kind\":{\"enum\":[\"dataCollection\",\"introHero\",\"selectionCards\",\"reviewSections\",\"successPanel\"]},\"formBlockId\":{\"type\":\"string\"},\"formConfigRef\":{\"type\":\"string\"},\"title\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"visibility\":{\"type\":\"array\"}}}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"editorial-data-block-add\",\"handlerContract\":{\"reads\":[\"EditorialSolutionDefinition.journeys\",\"EditorialResolvedStep.blocks\",\"EditorialDataBlockAdapterRegistry\"],\"writes\":[\"solution.journeys[].steps[].blocks\"],\"identityKeys\":[\"journeyId\",\"stepId\",\"block.blockId\"],\"failureModes\":[\"journey-not-found\",\"step-not-found\",\"duplicate-block-id\",\"data-collection-config-unresolved\",\"adapter-not-registered\"],\"description\":\"Adds a canonical editorial block to a step and validates dataCollection readiness without redefining Dynamic Form config semantics.\"}}],\"validators\":[\"data-block-id-unique\",\"journey-exists\",\"step-exists\",\"adapter-supports-data-block\",\"editorial-round-trip\"],\"affectedPaths\":[\"solution.journeys[].steps[].blocks\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"solution-loaded\"],\"destructive\":false,\"requiresConfirmation\":false},{\"operationId\":\"dataBlock.remove\",\"title\":\"Remove editorial data block\",\"scope\":\"section\",\"targetKind\":\"dataBlock\",\"target\":{\"kind\":\"dataBlock\",\"resolver\":\"editorial-journey-step-block-by-id\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"journeyId\",\"stepId\",\"blockId\"],\"properties\":{\"journeyId\":{\"type\":\"string\"},\"stepId\":{\"type\":\"string\"},\"blockId\":{\"type\":\"string\"},\"requireNoFieldBindings\":{\"type\":\"boolean\"}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"editorial-data-block-remove\",\"handlerContract\":{\"reads\":[\"EditorialSolutionDefinition.journeys\",\"EditorialResolvedStep.blocks\",\"fieldBinding\"],\"writes\":[\"solution.journeys[].steps[].blocks\"],\"identityKeys\":[\"journeyId\",\"stepId\",\"blockId\"],\"failureModes\":[\"journey-not-found\",\"step-not-found\",\"block-not-found\",\"field-bindings-still-reference-block\"],\"description\":\"Removes a block by stable id and rejects removal when governed field bindings still reference the block.\"}}],\"destructive\":true,\"requiresConfirmation\":true,\"validators\":[\"data-block-exists\",\"field-binding-target-exists\",\"editorial-round-trip\"],\"affectedPaths\":[\"solution.journeys[].steps[].blocks\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"solution-loaded\",\"explicit-confirmation-provided\"]},{\"operationId\":\"fieldBinding.set\",\"title\":\"Set editorial field binding\",\"scope\":\"fieldMetadataPath\",\"targetKind\":\"fieldBinding\",\"target\":{\"kind\":\"fieldBinding\",\"resolver\":\"editorial-data-block-field-binding\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"blockId\",\"fieldName\",\"contextPath\"],\"properties\":{\"blockId\":{\"type\":\"string\"},\"fieldName\":{\"type\":\"string\"},\"contextPath\":{\"type\":\"string\"},\"mode\":{\"enum\":[\"read\",\"write\",\"readWrite\"]},\"valueMode\":{\"enum\":[\"merge\",\"replace\"]},\"delegateFieldMetadataTo\":{\"enum\":[\"praxis-metadata-editor\"]}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"editorial-field-binding-set\",\"handlerContract\":{\"reads\":[\"EditorialDataCollectionBlock\",\"resolvedFormConfig.fieldMetadata\",\"runtimeContext.formData\",\"PRAXIS_METADATA_EDITOR_AUTHORING_MANIFEST\"],\"writes\":[\"runtimeContext.formData\"],\"identityKeys\":[\"blockId\",\"fieldName\",\"contextPath\"],\"failureModes\":[\"block-not-found\",\"field-not-found\",\"context-path-invalid\",\"field-metadata-delegation-required\",\"domain-data-mutation-detected\"],\"description\":\"Sets the governed runtimeContext.formData path used by dataCollection adapters and delegates FieldMetadata shape changes to the metadata-editor manifest.\"}}],\"validators\":[\"field-binding-target-exists\",\"field-binding-path-valid\",\"delegates-field-metadata\",\"editorial-round-trip\"],\"affectedPaths\":[\"runtimeContext.formData\"],\"submissionImpact\":\"affects-schema-backed-data\",\"preconditions\":[\"data-block-resolved\",\"field-metadata-loaded\"],\"destructive\":false,\"requiresConfirmation\":false}]}",
1747
+ "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-editorial-forms\",\"ownerPackage\":\"@praxisui/editorial-forms\",\"configSchemaId\":\"EditorialRuntimeInput\",\"chunkSection\":\"operations\",\"operations\":[{\"operationId\":\"adapter.bind\",\"title\":\"Bind data block adapter\",\"scope\":\"dataBinding\",\"targetKind\":\"adapter\",\"target\":{\"kind\":\"adapter\",\"resolver\":\"editorial-data-block-adapter-registry\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"adapterId\",\"dataBlockType\"],\"properties\":{\"adapterId\":{\"type\":\"string\"},\"dataBlockType\":{\"enum\":[\"dataCollection\"]},\"componentRef\":{\"type\":\"string\"},\"requiredInputs\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"forwardOperationalEvents\":{\"type\":\"boolean\"},\"fallbackModeWhenMissing\":{\"enum\":[\"warning\",\"degraded\",\"blocked\"]}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"editorial-adapter-bind\",\"handlerContract\":{\"reads\":[\"EDITORIAL_DATA_BLOCK_ADAPTER\",\"EditorialDataBlockAdapterRegistry\",\"EditorialDataBlockContext\",\"ComponentDocMeta\"],\"writes\":[\"hostConfig.forwardAdapterOperationalEvents\",\"snapshot.diagnostics.items\"],\"identityKeys\":[\"adapterId\",\"dataBlockType\"],\"inputSchema\":{\"type\":\"object\",\"required\":[\"adapterId\",\"dataBlockType\"],\"properties\":{\"adapterId\":{\"type\":\"string\"},\"dataBlockType\":{\"enum\":[\"dataCollection\"]},\"componentRef\":{\"type\":\"string\"},\"requiredInputs\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}},\"forwardOperationalEvents\":{\"type\":\"boolean\"},\"fallbackModeWhenMissing\":{\"enum\":[\"warning\",\"degraded\",\"blocked\"]}}},\"failureModes\":[\"adapter-not-registered\",\"adapter-does-not-support-data-block\",\"adapter-component-invalid\",\"fallback-policy-missing\"],\"description\":\"Validates the external provider binding for a dataCollection adapter and records the host operational-event policy required when the adapter is missing or incompatible.\"}}],\"validators\":[\"adapter-exists\",\"adapter-supports-data-block\",\"adapter-component-valid\",\"fallback-explicit\",\"editorial-round-trip\"],\"affectedPaths\":[\"hostConfig.forwardAdapterOperationalEvents\",\"snapshot.diagnostics.items\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"adapter-registry-loaded\"],\"destructive\":false,\"requiresConfirmation\":false},{\"operationId\":\"dataBlock.add\",\"title\":\"Add editorial data block\",\"scope\":\"section\",\"targetKind\":\"dataBlock\",\"target\":{\"kind\":\"dataBlock\",\"resolver\":\"editorial-journey-step-block-by-id\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"journeyId\",\"stepId\",\"block\"],\"properties\":{\"journeyId\":{\"type\":\"string\"},\"stepId\":{\"type\":\"string\"},\"insert\":{\"type\":\"object\",\"properties\":{\"mode\":{\"enum\":[\"append\",\"insertBefore\",\"insertAfter\"]},\"relativeToBlockId\":{\"type\":\"string\"}}},\"block\":{\"type\":\"object\",\"required\":[\"blockId\",\"kind\"],\"properties\":{\"blockId\":{\"type\":\"string\"},\"kind\":{\"enum\":[\"dataCollection\",\"introHero\",\"selectionCards\",\"reviewSections\",\"successPanel\"]},\"formBlockId\":{\"type\":\"string\"},\"formConfigRef\":{\"type\":\"string\"},\"title\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"visibility\":{\"type\":\"array\"}}}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"editorial-data-block-add\",\"handlerContract\":{\"reads\":[\"EditorialSolutionDefinition.journeys\",\"EditorialResolvedStep.blocks\",\"EditorialDataBlockAdapterRegistry\"],\"writes\":[\"solution.journeys[].steps[].blocks\"],\"identityKeys\":[\"journeyId\",\"stepId\",\"block.blockId\"],\"inputSchema\":{\"type\":\"object\",\"required\":[\"journeyId\",\"stepId\",\"block\"],\"properties\":{\"journeyId\":{\"type\":\"string\"},\"stepId\":{\"type\":\"string\"},\"insert\":{\"type\":\"object\",\"properties\":{\"mode\":{\"enum\":[\"append\",\"insertBefore\",\"insertAfter\"]},\"relativeToBlockId\":{\"type\":\"string\"}}},\"block\":{\"type\":\"object\",\"required\":[\"blockId\",\"kind\"],\"properties\":{\"blockId\":{\"type\":\"string\"},\"kind\":{\"enum\":[\"dataCollection\",\"introHero\",\"selectionCards\",\"reviewSections\",\"successPanel\"]},\"formBlockId\":{\"type\":\"string\"},\"formConfigRef\":{\"type\":\"string\"},\"title\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"visibility\":{\"type\":\"array\"}}}}},\"failureModes\":[\"journey-not-found\",\"step-not-found\",\"duplicate-block-id\",\"data-collection-config-unresolved\",\"adapter-not-registered\"],\"description\":\"Adds a canonical editorial block to a step and validates dataCollection readiness without redefining Dynamic Form config semantics.\"}}],\"validators\":[\"data-block-id-unique\",\"journey-exists\",\"step-exists\",\"adapter-supports-data-block\",\"editorial-round-trip\"],\"affectedPaths\":[\"solution.journeys[].steps[].blocks\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"solution-loaded\"],\"destructive\":false,\"requiresConfirmation\":false},{\"operationId\":\"dataBlock.remove\",\"title\":\"Remove editorial data block\",\"scope\":\"section\",\"targetKind\":\"dataBlock\",\"target\":{\"kind\":\"dataBlock\",\"resolver\":\"editorial-journey-step-block-by-id\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"journeyId\",\"stepId\",\"blockId\"],\"properties\":{\"journeyId\":{\"type\":\"string\"},\"stepId\":{\"type\":\"string\"},\"blockId\":{\"type\":\"string\"},\"requireNoFieldBindings\":{\"type\":\"boolean\"}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"editorial-data-block-remove\",\"handlerContract\":{\"reads\":[\"EditorialSolutionDefinition.journeys\",\"EditorialResolvedStep.blocks\",\"fieldBinding\"],\"writes\":[\"solution.journeys[].steps[].blocks\"],\"identityKeys\":[\"journeyId\",\"stepId\",\"blockId\"],\"inputSchema\":{\"type\":\"object\",\"required\":[\"journeyId\",\"stepId\",\"blockId\"],\"properties\":{\"journeyId\":{\"type\":\"string\"},\"stepId\":{\"type\":\"string\"},\"blockId\":{\"type\":\"string\"},\"requireNoFieldBindings\":{\"type\":\"boolean\"}}},\"failureModes\":[\"journey-not-found\",\"step-not-found\",\"block-not-found\",\"field-bindings-still-reference-block\"],\"description\":\"Removes a block by stable id and rejects removal when governed field bindings still reference the block.\"}}],\"destructive\":true,\"requiresConfirmation\":true,\"validators\":[\"data-block-exists\",\"field-binding-target-exists\",\"editorial-round-trip\"],\"affectedPaths\":[\"solution.journeys[].steps[].blocks\"],\"submissionImpact\":\"config-only\",\"preconditions\":[\"solution-loaded\",\"explicit-confirmation-provided\"]},{\"operationId\":\"fieldBinding.set\",\"title\":\"Set editorial field binding\",\"scope\":\"fieldMetadataPath\",\"targetKind\":\"fieldBinding\",\"target\":{\"kind\":\"fieldBinding\",\"resolver\":\"editorial-data-block-field-binding\",\"ambiguityPolicy\":\"fail\",\"required\":true},\"inputSchema\":{\"type\":\"object\",\"required\":[\"blockId\",\"fieldName\",\"contextPath\"],\"properties\":{\"blockId\":{\"type\":\"string\"},\"fieldName\":{\"type\":\"string\"},\"contextPath\":{\"type\":\"string\"},\"mode\":{\"enum\":[\"read\",\"write\",\"readWrite\"]},\"valueMode\":{\"enum\":[\"merge\",\"replace\"]},\"delegateFieldMetadataTo\":{\"enum\":[\"praxis-metadata-editor\"]}}},\"effects\":[{\"kind\":\"compile-domain-patch\",\"handler\":\"editorial-field-binding-set\",\"handlerContract\":{\"reads\":[\"EditorialDataCollectionBlock\",\"resolvedFormConfig.fieldMetadata\",\"runtimeContext.formData\",\"PRAXIS_METADATA_EDITOR_AUTHORING_MANIFEST\"],\"writes\":[\"runtimeContext.formData\"],\"identityKeys\":[\"blockId\",\"fieldName\",\"contextPath\"],\"inputSchema\":{\"type\":\"object\",\"required\":[\"blockId\",\"fieldName\",\"contextPath\"],\"properties\":{\"blockId\":{\"type\":\"string\"},\"fieldName\":{\"type\":\"string\"},\"contextPath\":{\"type\":\"string\"},\"mode\":{\"enum\":[\"read\",\"write\",\"readWrite\"]},\"valueMode\":{\"enum\":[\"merge\",\"replace\"]},\"delegateFieldMetadataTo\":{\"enum\":[\"praxis-metadata-editor\"]}}},\"failureModes\":[\"block-not-found\",\"field-not-found\",\"context-path-invalid\",\"field-metadata-delegation-required\",\"domain-data-mutation-detected\"],\"description\":\"Sets the governed runtimeContext.formData path used by dataCollection adapters and delegates FieldMetadata shape changes to the metadata-editor manifest.\"}}],\"validators\":[\"field-binding-target-exists\",\"field-binding-path-valid\",\"delegates-field-metadata\",\"editorial-round-trip\"],\"affectedPaths\":[\"runtimeContext.formData\"],\"submissionImpact\":\"affects-schema-backed-data\",\"preconditions\":[\"data-block-resolved\",\"field-metadata-loaded\"],\"destructive\":false,\"requiresConfirmation\":false}]}",
1380
1748
  "sourcePointer": "projects/praxis-editorial-forms/src/lib/ai/praxis-editorial-forms-authoring-manifest.ts",
1381
- "contentHash": "c69fe3eb4b0b9d741bf53c32e5975e24ecf8a395a226681266d58d667e42cdf6",
1749
+ "contentHash": "b5268a425689070c189d3334769584c7c151202a6834408c7e9e6cb95c877152",
1382
1750
  "sourceKind": "component_definition",
1383
1751
  "sourceId": "praxis-editorial-forms",
1384
1752
  "corpusVersion": "1.0.0"
1385
1753
  },
1386
1754
  {
1387
- "chunkIndex": 6,
1755
+ "chunkIndex": 13,
1388
1756
  "chunkKind": "authoring_manifest",
1389
1757
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-editorial-forms\",\"ownerPackage\":\"@praxisui/editorial-forms\",\"configSchemaId\":\"EditorialRuntimeInput\",\"chunkSection\":\"validators\",\"validators\":[{\"validatorId\":\"snapshot-shape-canonical\",\"level\":\"error\",\"code\":\"EDITORIAL_SNAPSHOT_SHAPE_CANONICAL\",\"description\":\"Resolved snapshot must remain compatible with EditorialRuntimeSnapshot.\"},{\"validatorId\":\"journey-exists\",\"level\":\"error\",\"code\":\"EDITORIAL_JOURNEY_EXISTS\",\"description\":\"Target journey must exist in the editorial solution.\"},{\"validatorId\":\"step-exists\",\"level\":\"error\",\"code\":\"EDITORIAL_STEP_EXISTS\",\"description\":\"Target step must exist in the selected journey.\"},{\"validatorId\":\"diagnostics-preserved\",\"level\":\"error\",\"code\":\"EDITORIAL_DIAGNOSTICS_PRESERVED\",\"description\":\"Patch compilation must not drop runtime diagnostics.\"},{\"validatorId\":\"fallback-explicit\",\"level\":\"error\",\"code\":\"EDITORIAL_FALLBACK_EXPLICIT\",\"description\":\"Fallback behavior must be explicit instead of implied by missing adapter or hidden diagnostics.\"},{\"validatorId\":\"fallback-diagnostic-backed\",\"level\":\"error\",\"code\":\"EDITORIAL_FALLBACK_DIAGNOSTIC_BACKED\",\"description\":\"Warning, degraded and blocked fallback states must be backed by diagnostics.\"},{\"validatorId\":\"fallback-scope-exists\",\"level\":\"error\",\"code\":\"EDITORIAL_FALLBACK_SCOPE_EXISTS\",\"description\":\"Fallback scope must resolve to an existing journey, step or block.\"},{\"validatorId\":\"presentation-supported-by-runtime\",\"level\":\"error\",\"code\":\"EDITORIAL_PRESENTATION_SUPPORTED\",\"description\":\"Presentation keys must be supported by the runtime or intentionally diagnosed as unsupported.\"},{\"validatorId\":\"presentation-does-not-mutate-domain-data\",\"level\":\"error\",\"code\":\"EDITORIAL_PRESENTATION_DOMAIN_SAFE\",\"description\":\"Presentation changes must not mutate solution journeys, blocks, field metadata or runtime context data.\"},{\"validatorId\":\"theme-tokens-valid\",\"level\":\"error\",\"code\":\"EDITORIAL_THEME_TOKENS_VALID\",\"description\":\"Theme tokens must be valid runtime CSS variable inputs.\"},{\"validatorId\":\"adapter-exists\",\"level\":\"error\",\"code\":\"EDITORIAL_ADAPTER_EXISTS\",\"description\":\"Requested adapter must exist in EditorialDataBlockAdapterRegistry.\"},{\"validatorId\":\"adapter-supports-data-block\",\"level\":\"error\",\"code\":\"EDITORIAL_ADAPTER_SUPPORTS_DATA_BLOCK\",\"description\":\"Requested adapter must support the target data block context.\"},{\"validatorId\":\"adapter-component-valid\",\"level\":\"error\",\"code\":\"EDITORIAL_ADAPTER_COMPONENT_VALID\",\"description\":\"Adapter component must expose the inputs required by the adapter contract.\"},{\"validatorId\":\"data-block-id-unique\",\"level\":\"error\",\"code\":\"EDITORIAL_DATA_BLOCK_ID_UNIQUE\",\"description\":\"Block ids must be unique within the resolved editorial step.\"},{\"validatorId\":\"data-block-exists\",\"level\":\"error\",\"code\":\"EDITORIAL_DATA_BLOCK_EXISTS\",\"description\":\"Target data block must exist before destructive or binding operations.\"},{\"validatorId\":\"field-binding-target-exists\",\"level\":\"error\",\"code\":\"EDITORIAL_FIELD_BINDING_TARGET_EXISTS\",\"description\":\"Field binding must target an existing dataCollection block and field.\"},{\"validatorId\":\"field-binding-path-valid\",\"level\":\"error\",\"code\":\"EDITORIAL_FIELD_BINDING_PATH_VALID\",\"description\":\"Field binding context path must be deterministic and inside governed runtime context data.\"},{\"validatorId\":\"delegates-field-metadata\",\"level\":\"error\",\"code\":\"EDITORIAL_DELEGATES_FIELD_METADATA\",\"description\":\"FieldMetadata shape changes must be delegated to the metadata-editor manifest instead of duplicated here.\"},{\"validatorId\":\"editorial-round-trip\",\"level\":\"error\",\"code\":\"EDITORIAL_ROUND_TRIP\",\"description\":\"Open, edit, apply/save, reopen and runtime consume must preserve the editorial document.\"}]}",
1390
1758
  "sourcePointer": "projects/praxis-editorial-forms/src/lib/ai/praxis-editorial-forms-authoring-manifest.ts",
@@ -1394,7 +1762,7 @@
1394
1762
  "corpusVersion": "1.0.0"
1395
1763
  },
1396
1764
  {
1397
- "chunkIndex": 7,
1765
+ "chunkIndex": 14,
1398
1766
  "chunkKind": "authoring_manifest",
1399
1767
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-editorial-forms\",\"ownerPackage\":\"@praxisui/editorial-forms\",\"configSchemaId\":\"EditorialRuntimeInput\",\"chunkSection\":\"roundTripRequirements\",\"roundTripRequirements\":[\"EditorialRuntimeInput is the package-level authoring document; solution, instance and runtimeContext must resolve into EditorialRuntimeSnapshot without drift.\",\"Fallback behavior must be explicit and backed by diagnostics; missing adapters cannot be hidden as successful rendering.\",\"Presentation changes are constrained to solution.presentation and must not mutate journeys, blocks, FormConfig, FieldMetadata or runtimeContext domain data.\",\"dataCollection blocks require an adapter that exists and supports the requested context, while Dynamic Form config semantics remain owned by @praxisui/dynamic-form.\",\"FieldMetadata authoring is delegated to praxis-metadata-editor and dynamic-fields discovery; this manifest only governs editorial binding and orchestration.\",\"Destructive block removal requires confirmation and must reject references from existing field bindings.\"]}",
1400
1768
  "sourcePointer": "projects/praxis-editorial-forms/src/lib/ai/praxis-editorial-forms-authoring-manifest.ts",
@@ -1404,7 +1772,7 @@
1404
1772
  "corpusVersion": "1.0.0"
1405
1773
  },
1406
1774
  {
1407
- "chunkIndex": 8,
1775
+ "chunkIndex": 15,
1408
1776
  "chunkKind": "authoring_manifest",
1409
1777
  "content": "{\"schemaVersion\":\"1.0.0\",\"manifestVersion\":\"1.0.0\",\"componentId\":\"praxis-editorial-forms\",\"ownerPackage\":\"@praxisui/editorial-forms\",\"configSchemaId\":\"EditorialRuntimeInput\",\"chunkSection\":\"examples\",\"examples\":[{\"id\":\"select-journey\",\"request\":\"Set the onboarding journey as the active editorial path.\",\"operationId\":\"snapshot.set\",\"params\":{\"solutionId\":\"customer-onboarding\",\"journeyId\":\"onboarding\"},\"isPositive\":true},{\"id\":\"merge-runtime-context\",\"request\":\"Prefill the runtime context with the selected plan.\",\"operationId\":\"snapshot.set\",\"params\":{\"solutionId\":\"plan-signup\",\"runtimeContextPatch\":{\"selectedPlan\":\"pro\"}},\"isPositive\":true},{\"id\":\"configure-blocked-fallback\",\"request\":\"Block progression when the required dataCollection adapter is missing.\",\"operationId\":\"fallback.configure\",\"params\":{\"mode\":\"blocked\",\"diagnosticCode\":\"data-collection-adapter-missing\",\"progressionBlocked\":true},\"isPositive\":true},{\"id\":\"configure-stepper\",\"request\":\"Use a vertical compact stepper with hidden descriptions.\",\"operationId\":\"presentation.configure\",\"params\":{\"layout\":{\"orientation\":\"vertical\",\"density\":\"compact\"},\"stepper\":{\"showDescriptions\":false}},\"isPositive\":true},{\"id\":\"bind-dynamic-form-adapter\",\"request\":\"Bind the dynamic-form adapter for dataCollection blocks.\",\"operationId\":\"adapter.bind\",\"params\":{\"adapterId\":\"dynamic-form\",\"dataBlockType\":\"dataCollection\",\"requiredInputs\":[\"config\",\"formId\",\"editorialContext\"],\"fallbackModeWhenMissing\":\"blocked\"},\"isPositive\":true},{\"id\":\"add-data-block\",\"request\":\"Add a consent form block to the review step.\",\"operationId\":\"dataBlock.add\",\"params\":{\"journeyId\":\"privacy\",\"stepId\":\"review\",\"block\":{\"blockId\":\"consent-form\",\"kind\":\"dataCollection\",\"formBlockId\":\"consent-form\"}},\"isPositive\":true},{\"id\":\"remove-block\",\"request\":\"Remove the unused legacy consent block.\",\"operationId\":\"dataBlock.remove\",\"params\":{\"journeyId\":\"privacy\",\"stepId\":\"review\",\"blockId\":\"legacy-consent\",\"requireNoFieldBindings\":true},\"isPositive\":true},{\"id\":\"set-field-binding\",\"request\":\"Bind the email field into runtimeContext.formData.email.\",\"operationId\":\"fieldBinding.set\",\"params\":{\"blockId\":\"contact-form\",\"fieldName\":\"email\",\"contextPath\":\"formData.email\",\"mode\":\"readWrite\",\"delegateFieldMetadataTo\":\"praxis-metadata-editor\"},\"isPositive\":true},{\"id\":\"reject-presentation-domain-mutation\",\"request\":\"Change presentation and also rewrite the collected email value.\",\"operationId\":\"presentation.configure\",\"params\":{\"layout\":{\"density\":\"relaxed\"},\"runtimeContextPatch\":{\"formData\":{\"email\":\"changed@example.com\"}}},\"isPositive\":false},{\"id\":\"reject-missing-adapter\",\"request\":\"Render a dataCollection block with an adapter that is not registered.\",\"operationId\":\"adapter.bind\",\"params\":{\"adapterId\":\"unknown-form-engine\",\"dataBlockType\":\"dataCollection\"},\"isPositive\":false},{\"id\":\"reject-duplicate-block\",\"request\":\"Add another block using the existing consent-form id.\",\"operationId\":\"dataBlock.add\",\"params\":{\"journeyId\":\"privacy\",\"stepId\":\"review\",\"block\":{\"blockId\":\"consent-form\",\"kind\":\"dataCollection\",\"formBlockId\":\"consent-form-copy\"}},\"isPositive\":false},{\"id\":\"reject-field-metadata-duplication\",\"request\":\"Change the control type inside editorial forms instead of metadata editor.\",\"operationId\":\"fieldBinding.set\",\"params\":{\"blockId\":\"contact-form\",\"fieldName\":\"email\",\"contextPath\":\"formData.email\",\"controlType\":\"select\"},\"isPositive\":false}]}",
1410
1778
  "sourcePointer": "projects/praxis-editorial-forms/src/lib/ai/praxis-editorial-forms-authoring-manifest.ts",
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@praxisui/editorial-forms",
3
- "version": "9.0.0-beta.85",
3
+ "version": "9.0.0-beta.88",
4
4
  "description": "Editorial form runtime for Praxis UI: journeys, presets, semantic blocks, and specialist hosting for editorial experiences.",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^21.0.0",
7
7
  "@angular/core": "^21.0.0",
8
- "@praxisui/core": "^9.0.0-beta.85",
8
+ "@praxisui/core": "^9.0.0-beta.88",
9
9
  "@angular/material": "^21.0.0"
10
10
  },
11
11
  "dependencies": {