@alfadocs/ui-kit 0.71.0 → 0.72.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 (464) hide show
  1. package/dist/_chunks/{accordion-DnIa7OHX.js → accordion-C11v9ouP.js} +2 -2
  2. package/dist/_chunks/{address-autocomplete-BEX9PXty.js → address-autocomplete-Bq-1n1UX.js} +2 -2
  3. package/dist/_chunks/{address-fields-CPbFJ8e8.js → address-fields-COyjgqxA.js} +8 -8
  4. package/dist/_chunks/{agenda-card-BQ-IKAru.js → agenda-card-BCGaQazD.js} +2 -2
  5. package/dist/_chunks/{agenda-tray-CGXRk58j.js → agenda-tray-loL2A3Cx.js} +4 -4
  6. package/dist/_chunks/{ai-consent-banner-Be-h9mRI.js → ai-consent-banner-Bke9m8VS.js} +2 -2
  7. package/dist/_chunks/{ai-prompt-input-V4DdOeqv.js → ai-prompt-input-TVI95hJD.js} +4 -4
  8. package/dist/_chunks/{alert-CHYZ96tR.js → alert-KJbsPYkI.js} +8 -8
  9. package/dist/_chunks/{alia-sidebar-DvIUzIX9.js → alia-sidebar-BV5lBSFR.js} +279 -223
  10. package/dist/_chunks/{anamnesis-card-DvYCa16e.js → anamnesis-card-CWO4Ui9c.js} +4 -4
  11. package/dist/_chunks/{antenatal-schedule-timeline-CwXrQRm1.js → antenatal-schedule-timeline-CY-VsLok.js} +3 -3
  12. package/dist/_chunks/{appointment-card-DVaeJNVB.js → appointment-card-Cy4FOkGP.js} +86 -69
  13. package/dist/_chunks/{appointment-timeline-PJgnrjFb.js → appointment-timeline-BWAPPk8F.js} +4 -4
  14. package/dist/_chunks/{appointment-tray-B16QPGbm.js → appointment-tray-D3mk04TT.js} +4 -4
  15. package/dist/_chunks/{ar-Cn5Fq48Z.js → ar-BOqyIfoY.js} +2 -2
  16. package/dist/_chunks/astroid-BN4f5VXU.js +20 -0
  17. package/dist/_chunks/{audio-recorder-DNDsOLqO.js → audio-recorder-BbjG55dP.js} +9 -9
  18. package/dist/_chunks/{bishop-score-Cym_TeQY.js → bishop-score-C6eoak_j.js} +4 -4
  19. package/dist/_chunks/{bmi-calculator-zjeY4E7J.js → bmi-calculator-BmQfoEGP.js} +5 -5
  20. package/dist/_chunks/{booking-C7do4vaR.js → booking-B62CMY5k.js} +205 -221
  21. package/dist/_chunks/{breadcrumb-CchdeG7d.js → breadcrumb-agut0PwN.js} +3 -3
  22. package/dist/_chunks/{calculator-dialog-BR5iU0kf.js → calculator-dialog-DuXMQSdm.js} +2 -2
  23. package/dist/_chunks/{calendar-CZUjL8SZ.js → calendar-DeAlFPsF.js} +15 -15
  24. package/dist/_chunks/{calendar-clock-CYkcqdwl.js → calendar-clock-hbObjfGY.js} +3 -3
  25. package/dist/_chunks/{calendar-days-C4BmpCZg.js → calendar-days-BGWklvE-.js} +3 -3
  26. package/dist/_chunks/{care-plan-card-DzPDYgtK.js → care-plan-card-DhXbfGzE.js} +6 -6
  27. package/dist/_chunks/{care-plan-entry-card-CEnQy7YP.js → care-plan-entry-card-D3YGD6rj.js} +6 -6
  28. package/dist/_chunks/{care-plan-header-DcXFXWit.js → care-plan-header-DtQxyfOb.js} +4 -4
  29. package/dist/_chunks/{carousel.agent-4v8Emr9E.js → carousel.agent-j7hWxJWr.js} +3 -3
  30. package/dist/_chunks/{chat-container-DWho5hPR.js → chat-container-BVCoN06N.js} +2 -2
  31. package/dist/_chunks/{chat-input-BcXTetgM.js → chat-input-Btq_uuMZ.js} +5 -5
  32. package/dist/_chunks/{chat-message-DzpcJR-q.js → chat-message-DXjjM8z9.js} +7 -7
  33. package/dist/_chunks/{check-DPdL_Sm7.js → check-DrFSN__t.js} +3 -3
  34. package/dist/_chunks/{checkbox-group-PqNmQ-cE.js → checkbox-group-CfqMv57d.js} +2 -2
  35. package/dist/_chunks/{chevron-down-BX_NP2Yh.js → chevron-down-DWE7GSq9.js} +3 -3
  36. package/dist/_chunks/{chevron-left-CX1jqD2M.js → chevron-left-B8cOyH-V.js} +3 -3
  37. package/dist/_chunks/{chevron-right-BrpYejk0.js → chevron-right-I9AeSxH2.js} +3 -3
  38. package/dist/_chunks/{chevron-up-zOEDrmBB.js → chevron-up-umRGgtJA.js} +3 -3
  39. package/dist/_chunks/{chevrons-right-d9MwesPG.js → chevrons-right-DIHg7Xqi.js} +4 -4
  40. package/dist/_chunks/{circle-alert-ChA9opNA.js → circle-alert-rGDZ73Wh.js} +3 -3
  41. package/dist/_chunks/{circle-check-9AeSgJD_.js → circle-check-BN6rz4NV.js} +3 -3
  42. package/dist/_chunks/{circle-BkqTgYmt.js → circle-j7oZoouK.js} +3 -3
  43. package/dist/_chunks/{circle-x-Du2CmjaU.js → circle-x-W8Enq3i4.js} +3 -3
  44. package/dist/_chunks/{city-input-Dkgaak7I.js → city-input-towzBenY.js} +2 -2
  45. package/dist/_chunks/{clinical-note-card-BUvNMNGL.js → clinical-note-card-C7F_24IC.js} +9 -9
  46. package/dist/_chunks/clipboard-check-BeAGxDVT.js +22 -0
  47. package/dist/_chunks/{clock-21AGPWJ5.js → clock-Drd4Wtis.js} +3 -3
  48. package/dist/_chunks/{code-block-BBWHhIc8.js → code-block-Cwi7e3HM.js} +3 -3
  49. package/dist/_chunks/{color-picker-C_fZl6sA.js → color-picker-D-tUwxxT.js} +3 -3
  50. package/dist/_chunks/{columns-2-BTOBZbep.js → columns-2-8lq4-b8e.js} +3 -3
  51. package/dist/_chunks/{combobox-DnqSF0IH.js → combobox-DiMLItyu.js} +3 -3
  52. package/dist/_chunks/{command-palette-CJzmc5pC.js → command-palette-DQl_SNEv.js} +2 -2
  53. package/dist/_chunks/{connection-status-CY1HV8Wg.js → connection-status-0HajXMXM.js} +2 -2
  54. package/dist/_chunks/{contact-card-Cf8Ktyt3.js → contact-card-0hnFJwrz.js} +3 -3
  55. package/dist/_chunks/{contact-profile-card-DDPwRFiP.js → contact-profile-card-IggiUVpN.js} +14 -14
  56. package/dist/_chunks/{control-room-rail-FAQZrGVL.js → control-room-rail-DaGcsdZ6.js} +3 -3
  57. package/dist/_chunks/{copy-field-Bjw9u2cV.js → copy-field-PAp0-Wr5.js} +3 -3
  58. package/dist/_chunks/{copy-B00HK7tj.js → copy-vRpqqHtY.js} +3 -3
  59. package/dist/_chunks/{country-select-BwUZQvTa.js → country-select-DYHDLEjG.js} +2 -2
  60. package/dist/_chunks/{createLucideIcon-CrFbzy84.js → createLucideIcon-DhHxpK9K.js} +8 -8
  61. package/dist/_chunks/{cycle-calculator-CCmPwcBl.js → cycle-calculator-BNILyVas.js} +10 -10
  62. package/dist/_chunks/{date-picker-Dl9RKxaV.js → date-picker-CVkD_lOi.js} +3 -3
  63. package/dist/_chunks/{date-picker-variants-DAcSLTua.js → date-picker-variants-DLg-ZrIo.js} +20 -20
  64. package/dist/_chunks/{date-range-picker-CTUeR6Bj.js → date-range-picker-Dw12DgV8.js} +4 -4
  65. package/dist/_chunks/{date-time-picker-BhoogS5Q.js → date-time-picker-Cd_OJtOy.js} +3 -3
  66. package/dist/_chunks/{de-CrJs4ZsX.js → de-DFLsUxeV.js} +2 -2
  67. package/dist/_chunks/{dependent-selector-DUV4thxX.js → dependent-selector-DyFpdzZV.js} +2 -2
  68. package/dist/_chunks/{description-list-gkNGWk5G.js → description-list-CmBVxIF5.js} +3 -3
  69. package/dist/_chunks/{dialog-ZNuboNmy.js → dialog-UbKJCi1X.js} +2 -2
  70. package/dist/_chunks/{document-scanner-C_AxLooF.js → document-scanner-B23j4w7X.js} +8 -8
  71. package/dist/_chunks/{download-CDF1sbL9.js → download-CfYKJO_j.js} +3 -3
  72. package/dist/_chunks/{dropdown-menu-qrxjymfw.js → dropdown-menu-DU-Hrf33.js} +3 -3
  73. package/dist/_chunks/{due-date-calculator-Brdj-euS.js → due-date-calculator-CmdAl_JO.js} +7 -7
  74. package/dist/_chunks/{editable-currency-cell-renderer-CGELrkIj.js → editable-currency-cell-renderer-z9fJFw6Z.js} +7 -7
  75. package/dist/_chunks/{editor-overlay-wYm22wZK.js → editor-overlay-BIOzr8v7.js} +2 -2
  76. package/dist/_chunks/{el-DHdMOIhL.js → el-OVjBKytp.js} +2 -2
  77. package/dist/_chunks/{ellipsis-rgGdiK_9.js → ellipsis-dRo9ouSU.js} +3 -3
  78. package/dist/_chunks/{email-input-DJ7EXklP.js → email-input-Dpe63k0K.js} +3 -3
  79. package/dist/_chunks/{entity-card-DmrgYSEX.js → entity-card-9_62gY7l.js} +4 -4
  80. package/dist/_chunks/{entity-summary-CaM1Y-xE.js → entity-summary-DpGziDv5.js} +104 -118
  81. package/dist/_chunks/{es-DCATCfqo.js → es-DKDNrHXG.js} +2 -2
  82. package/dist/_chunks/{external-link-C6F25E6k.js → external-link-CY6zAXXU.js} +3 -3
  83. package/dist/_chunks/{eye-LHlSU38h.js → eye-BjhN2nYf.js} +3 -3
  84. package/dist/_chunks/{eye-off-xEXDAh5z.js → eye-off-C_4xkbRP.js} +3 -3
  85. package/dist/_chunks/face-scheme-DOZO3M_c.js +1450 -0
  86. package/dist/_chunks/face_detection_yunet_2023mar-BnsRs4bD.js +5 -0
  87. package/dist/_chunks/{fetal-weight-DNCkyeVo.js → fetal-weight-CVAH8sJ3.js} +4 -4
  88. package/dist/_chunks/{field-array-siUZzfYe.js → field-array-CDzc3hTM.js} +3 -3
  89. package/dist/_chunks/{field-value-3jMM0uDx.js → field-value-Dj3i52H2.js} +13 -13
  90. package/dist/_chunks/{file-spreadsheet-zUkY8rJ2.js → file-spreadsheet-DmwyfV4O.js} +3 -3
  91. package/dist/_chunks/{file-text-DSNuv2B8.js → file-text-5yv6r2ls.js} +3 -3
  92. package/dist/_chunks/{file-upload-DwZcAK8D.js → file-upload-Kw1rdvFw.js} +13 -13
  93. package/dist/_chunks/{finished-terminal-VjZ_-eDD.js → finished-terminal-Di4gtZ50.js} +2 -2
  94. package/dist/_chunks/{fiscal-code-input-Cf-8O4Fj.js → fiscal-code-input-DKNXFXs3.js} +5 -5
  95. package/dist/_chunks/{form-field-BOm9hK35.js → form-field-M5UpX65Z.js} +2 -2
  96. package/dist/_chunks/{fr-BfGEMshF.js → fr-BfMvQh-v.js} +2 -2
  97. package/dist/_chunks/{freemium-paywall-WYlNO7yT.js → freemium-paywall-DFoeedwh.js} +4 -4
  98. package/dist/_chunks/{gestational-age-calculator-DKzEV5Qi.js → gestational-age-calculator-BwCBPAGX.js} +9 -9
  99. package/dist/_chunks/{globe-BkEFMNSg.js → globe-sHBW1JN5.js} +3 -3
  100. package/dist/_chunks/{grip-vertical-Dlg0_k5C.js → grip-vertical-onSb1JXO.js} +3 -3
  101. package/dist/_chunks/{hash-CysBBS_N.js → hash-CSQ9SChR.js} +3 -3
  102. package/dist/_chunks/{hcg-doubling-C7bmuaU3.js → hcg-doubling-CSsWxEJc.js} +5 -5
  103. package/dist/_chunks/{header-CNszv2WQ.js → header-DaXWDw0M.js} +2 -2
  104. package/dist/_chunks/{header-settings-DJqoAl5m.js → header-settings-B0G_u-wV.js} +6 -6
  105. package/dist/_chunks/{heart-C0faivFf.js → heart--qCA4ffe.js} +3 -3
  106. package/dist/_chunks/{heart-pulse-CvuyFKHB.js → heart-pulse-BCppJyN2.js} +3 -3
  107. package/dist/_chunks/{hi-CBFRXEIm.js → hi-C0GEMwlD.js} +2 -2
  108. package/dist/_chunks/{iban-input-B0TWzR1R.js → iban-input-DXIA8Ln_.js} +3 -3
  109. package/dist/_chunks/{icon-picker-0B7KhrF1.js → icon-picker-Di6uYDG-.js} +4 -4
  110. package/dist/_chunks/{image-C6RM5hfF.js → image-B_5MNK0x.js} +3 -3
  111. package/dist/_chunks/{image-cropper-D9jqJy19.js → image-cropper-CdmWFrMC.js} +2 -2
  112. package/dist/_chunks/{info-B9XNKn05.js → info-CGn22peZ.js} +3 -3
  113. package/dist/_chunks/{insert-result-njqBthzT.js → insert-result-C7xSDb8q.js} +5 -5
  114. package/dist/_chunks/{isSameWeek-I3DfXUp1.js → isSameWeek-HddDAyJG.js} +2 -2
  115. package/dist/_chunks/{it-nz6vAKwG.js → it-5f4hiT2e.js} +3 -3
  116. package/dist/_chunks/{ja-DQcqdAEJ.js → ja-U0_2inl_.js} +2 -2
  117. package/dist/_chunks/{key-value-pair-BrgbMfbF.js → key-value-pair-Byyyc_9J.js} +3 -3
  118. package/dist/_chunks/{languages-DsVf_WzT.js → languages-CGLX6Qpe.js} +3 -3
  119. package/dist/_chunks/{layers-pzGcbLPj.js → layers-DcAENmsZ.js} +3 -3
  120. package/dist/_chunks/{link-DrD_cRUg.js → link-CPb_pZPr.js} +2 -2
  121. package/dist/_chunks/{link-cell-renderer-De_SLjSq.js → link-cell-renderer-BCppbMec.js} +19 -19
  122. package/dist/_chunks/{locale-picker-ChYYSX2N.js → locale-picker-DzF7Q5Y8.js} +5 -5
  123. package/dist/_chunks/{lock-CKOIn0IK.js → lock-ClAFG1gy.js} +3 -3
  124. package/dist/_chunks/{log-out-616hnn2-.js → log-out-oDS6zO5d.js} +3 -3
  125. package/dist/_chunks/{mail-C8irm52s.js → mail-BqXVF2zH.js} +3 -3
  126. package/dist/_chunks/{map-pin-B8STOPMJ.js → map-pin-BaY37-Km.js} +3 -3
  127. package/dist/_chunks/{map-view-BkOoGoX2.js → map-view-ByPvWG_9.js} +3 -3
  128. package/dist/_chunks/{marketplace-app-shell-BGqkywsi.js → marketplace-app-shell-BCYiOvKZ.js} +9 -9
  129. package/dist/_chunks/{maximize-2-Cm9OUQ2m.js → maximize-2-BYd2Kti7.js} +3 -3
  130. package/dist/_chunks/{menu-XRhW3_99.js → menu-Op71AWIC.js} +3 -3
  131. package/dist/_chunks/{message-card-DsHFFiL1.js → message-card-BZnnffyB.js} +2 -2
  132. package/dist/_chunks/{message-circle-C23eicgb.js → message-circle-Bepl9JT5.js} +3 -3
  133. package/dist/_chunks/{message-tray-C0a6CL1_.js → message-tray-cUHOCdU0.js} +3 -3
  134. package/dist/_chunks/{mic-B4Gog3Gi.js → mic-CUklMZGF.js} +3 -3
  135. package/dist/_chunks/{monitor-D-SFdbrU.js → monitor-xXSrufmP.js} +3 -3
  136. package/dist/_chunks/{multi-select-WE4S9FIF.js → multi-select-D5QLBJM1.js} +3 -3
  137. package/dist/_chunks/{anatomy-scheme-CXSk11UJ.js → muscle-scheme-B9MIkuj0.js} +415 -1146
  138. package/dist/_chunks/{nav-grid-9xphY3FM.js → nav-grid-gRudLsPX.js} +2 -2
  139. package/dist/_chunks/{navigation-menu-DRUi6sSj.js → navigation-menu-D3VndouD.js} +2 -2
  140. package/dist/_chunks/{nl-L5SuDjyl.js → nl-CDVnnx1U.js} +2 -2
  141. package/dist/_chunks/{notes-panel-DXiMfuvp.js → notes-panel-CMyjUXD4.js} +68 -64
  142. package/dist/_chunks/{notification-card-BMqNzCIt.js → notification-card-BHJ07FkH.js} +2 -2
  143. package/dist/_chunks/{notification-tray-BmUlCx3g.js → notification-tray-Dzm1c3Wy.js} +4 -4
  144. package/dist/_chunks/{number-input-DxphVG_A.js → number-input-DjWzmlEY.js} +3 -3
  145. package/dist/_chunks/{operator-hero-BO8TqzX2.js → operator-hero-DVy0RGoD.js} +3 -3
  146. package/dist/_chunks/optical-prescription-Bmlbuopi.js +653 -0
  147. package/dist/_chunks/{pagination-D58kglCr.js → pagination-EkD5SiCK.js} +6 -6
  148. package/dist/_chunks/{patient-details-DgfTJimE.js → patient-details-pU_E5xM2.js} +106 -87
  149. package/dist/_chunks/{patient-search-CSWQKOSP.js → patient-search-X9SUZGpy.js} +10 -10
  150. package/dist/_chunks/{patient-shell-BMwsIKlW.js → patient-shell-oiIRqEAl.js} +7 -7
  151. package/dist/_chunks/{patient-summary-card-D4NdgYJB.js → patient-summary-card--t3BjTdU.js} +16 -16
  152. package/dist/_chunks/{patient-table-CERknpd8.js → patient-table-BgWgNIMf.js} +11 -11
  153. package/dist/_chunks/{payment-form-CxqIXqw7.js → payment-form-DL9xk9BA.js} +2 -2
  154. package/dist/_chunks/{payment-request-card-Blf-MFNY.js → payment-request-card-2ts7ITxd.js} +15 -15
  155. package/dist/_chunks/{pdf-viewer-QfebdLOd.js → pdf-viewer-DF3VMaPo.js} +8 -8
  156. package/dist/_chunks/{pencil-CfQX-0Qc.js → pencil-B1sKKyuT.js} +3 -3
  157. package/dist/_chunks/{periodontal-chart-card-hRRJY1NN.js → periodontal-chart-card-6c6Lt4ws.js} +2 -2
  158. package/dist/_chunks/{permission-matrix-Bw5oexUt.js → permission-matrix-BIJrGEmz.js} +3 -3
  159. package/dist/_chunks/{phone-Bi5yUm4I.js → phone-FceYcIFQ.js} +3 -3
  160. package/dist/_chunks/{phone-input-DjU-XmO_.js → phone-input-dtnrvnZf.js} +2 -2
  161. package/dist/_chunks/{pl-YAn5z2wR.js → pl-BWNumNrg.js} +3 -3
  162. package/dist/_chunks/{plus-CYKNmfuA.js → plus-DzMQ_c6b.js} +3 -3
  163. package/dist/_chunks/{popover-B2qCDhJC.js → popover-uJ6BvEU3.js} +2 -2
  164. package/dist/_chunks/{postal-code-input-UCOYuRY2.js → postal-code-input-BznBxVxf.js} +3 -3
  165. package/dist/_chunks/{practice-results-El5Z-oVp.js → practice-results-CSEHTH2V.js} +15 -15
  166. package/dist/_chunks/{pregnancy-dating-CunHrOpO.js → pregnancy-dating-CxVAA6_4.js} +10 -10
  167. package/dist/_chunks/{pregnancy-weight-gain-BUNpTsH-.js → pregnancy-weight-gain-C7zyrwow.js} +5 -5
  168. package/dist/_chunks/{printer-CeVEWfQq.js → printer-rkK0T1gi.js} +3 -3
  169. package/dist/_chunks/{privacy-lock-BzMLQu-j.js → privacy-lock-DrRmK8C7.js} +4 -4
  170. package/dist/_chunks/{product-hub-panel-DtU7KXxm.js → product-hub-panel-CaZqttvm.js} +5 -5
  171. package/dist/_chunks/{province-select-D_TZvix3.js → province-select-BDywtmL-.js} +2 -2
  172. package/dist/_chunks/{pt-D9xdT5KQ.js → pt-zqdQuryr.js} +2 -2
  173. package/dist/_chunks/{public-footer.agent-D0cFbjWl.js → public-footer.agent-BKkK3T3V.js} +3 -3
  174. package/dist/_chunks/{public-header.agent-TxmC_x1I.js → public-header.agent-C-opZaOw.js} +5 -5
  175. package/dist/_chunks/{radio-group-BPt7pKZW.js → radio-group-CI-6SmSw.js} +2 -2
  176. package/dist/_chunks/{radiograph-panel.agent-tWjN2nHX.js → radiograph-panel.agent-D1x33moc.js} +14 -14
  177. package/dist/_chunks/{rating-BRD7O74e.js → rating-BYbUowdK.js} +2 -2
  178. package/dist/_chunks/{refresh-cw-CC8jSKMr.js → refresh-cw-DnI0cLFC.js} +3 -3
  179. package/dist/_chunks/{reviews-panel-DxkSrgMl.js → reviews-panel-liUj6OPX.js} +5 -5
  180. package/dist/_chunks/{rich-text-editor-C8tyGjfb.js → rich-text-editor-DUgznqOf.js} +53 -53
  181. package/dist/_chunks/{ro-Cp--52bT.js → ro-CornQr64.js} +2 -2
  182. package/dist/_chunks/{rotate-ccw-BWANpitO.js → rotate-ccw-BBQnIVTr.js} +3 -3
  183. package/dist/_chunks/{ru-BM8eX_Zz.js → ru-CKAXNYVD.js} +3 -3
  184. package/dist/_chunks/{scan-line-lGioFwLC.js → scan-line-CNseIHQ0.js} +3 -3
  185. package/dist/_chunks/{search-BonnQsHv.js → search-QbWPlY5f.js} +3 -3
  186. package/dist/_chunks/{search-bar-C_T3pBJn.js → search-bar-CJj6sI9m.js} +3 -3
  187. package/dist/_chunks/{search-input-DQvGxR74.js → search-input-B7GmlPIE.js} +4 -4
  188. package/dist/_chunks/{select-KsyRr8WH.js → select-BmCbJMJS.js} +5 -5
  189. package/dist/_chunks/{send-CySZIRPJ.js → send-C5kDJ-Mz.js} +3 -3
  190. package/dist/_chunks/{session-countdown-X1Ki6i0M.js → session-countdown-qr8EO5QY.js} +5 -5
  191. package/dist/_chunks/{settings-ca2Yi9R8.js → settings-d25ju_6L.js} +3 -3
  192. package/dist/_chunks/{sheet-umkfZjF6.js → sheet-B_X54aZo.js} +2 -2
  193. package/dist/_chunks/{shield-check-BjCGH_Sr.js → shield-check-DCJALLVh.js} +3 -3
  194. package/dist/_chunks/{sidebar-QCp9wHNP.js → sidebar-B0OBmJrC.js} +10 -10
  195. package/dist/_chunks/{sign-document-By6hMOra.js → sign-document-nK03S73h.js} +3 -3
  196. package/dist/_chunks/{signature-field-Dy1JRjzE.js → signature-field-jgwYgUhO.js} +4 -4
  197. package/dist/_chunks/{smart-date-CWikAqZx.js → smart-date-CsPlilQA.js} +7 -7
  198. package/dist/_chunks/{sq-XRpr0r49.js → sq-CIIvqXZv.js} +2 -2
  199. package/dist/_chunks/{square-CZoGU14v.js → square-DASBRZ0U.js} +3 -3
  200. package/dist/_chunks/{square-check-big-Jr-0202D.js → square-check-big-dj0o8yA3.js} +3 -3
  201. package/dist/_chunks/{star-vav0SJ9e.js → star-Bf9L2Uot.js} +3 -3
  202. package/dist/_chunks/{stepper-accordion-DC-H-8v4.js → stepper-accordion-BeVMZPuG.js} +3 -3
  203. package/dist/_chunks/{stethoscope-DT5qCW8Y.js → stethoscope-sZXGC43m.js} +3 -3
  204. package/dist/_chunks/{streaming-text-BB9mvK4m.js → streaming-text-Cedc05ya.js} +2 -2
  205. package/dist/_chunks/subDays-DGSOp9d9.js +8 -0
  206. package/dist/_chunks/{sun-BuXE0xUS.js → sun-Bj9Mr553.js} +4 -4
  207. package/dist/_chunks/{sv-Z3APomE8.js → sv-Kpk1pzjz.js} +2 -2
  208. package/dist/_chunks/{tab-bar-Bv9nGNdO.js → tab-bar-Axhk6xzx.js} +6 -6
  209. package/dist/_chunks/{tabs-CYZVKKDl.js → tabs-DVQ941Sj.js} +4 -4
  210. package/dist/_chunks/{tag-BQXwuJq1.js → tag-3wgkwwDB.js} +2 -2
  211. package/dist/_chunks/{task-card-DCdsI0ZT.js → task-card-BUgK6yZT.js} +9 -9
  212. package/dist/_chunks/{task-tray-DNVejijD.js → task-tray-DP5A3Qnc.js} +5 -5
  213. package/dist/_chunks/{tasks-panel-C9odmawT.js → tasks-panel-BuxaYtEF.js} +40 -40
  214. package/dist/_chunks/{text-input-B-OWQ1Je.js → text-input-CUvCb6ST.js} +2 -2
  215. package/dist/_chunks/{theme-toggle-XB6o_lgs.js → theme-toggle-dtdy5EaL.js} +4 -4
  216. package/dist/_chunks/{timeline-CqA4nKTI.js → timeline-r-8IUoBS.js} +6 -6
  217. package/dist/_chunks/{toast.agent-57UzyR9U.js → toast.agent-BSxl057x.js} +6 -6
  218. package/dist/_chunks/{token-insert-menu-CFQqTe_n.js → token-insert-menu-Pok4nExI.js} +2 -2
  219. package/dist/_chunks/{tooth-scheme-DJZtzfeY.js → tooth-scheme-D_rso4uu.js} +4 -4
  220. package/dist/_chunks/{tr-e0-P4FON.js → tr-DHaeLFxG.js} +2 -2
  221. package/dist/_chunks/{transaction-chip-CscoQbxF.js → transaction-chip-B6iWoVmU.js} +8 -8
  222. package/dist/_chunks/{transcript-panel-CHGHHHdT.js → transcript-panel-BGkEhvHO.js} +3 -3
  223. package/dist/_chunks/{trash-2-rPAKaRgB.js → trash-2-uumy3fy1.js} +3 -3
  224. package/dist/_chunks/{triangle-alert-CBPUIzQo.js → triangle-alert-CBnO6nq_.js} +3 -3
  225. package/dist/_chunks/{unit-converter-CwlZbfdn.js → unit-converter-fEqluT8b.js} +5 -5
  226. package/dist/_chunks/{use-password-requirements-BXvS2MBS.js → use-password-requirements-Bwtqx1qN.js} +7 -7
  227. package/dist/_chunks/{user-CPxpqFjJ.js → user-B12p7bVF.js} +3 -3
  228. package/dist/_chunks/{user-cog-BS_qc8nA.js → user-cog-BTn98Arm.js} +3 -3
  229. package/dist/_chunks/{users-MBVtUzwd.js → users-BjS_Gg1E.js} +3 -3
  230. package/dist/_chunks/{video-BAeICxCT.js → video-BheNGvsu.js} +3 -3
  231. package/dist/_chunks/{warning-stack--sTrrBDA.js → warning-stack-BaMI7-n7.js} +4 -4
  232. package/dist/_chunks/{workflow-map-M8MBBHQm.js → workflow-map-qWsgCldq.js} +146 -146
  233. package/dist/_chunks/{x-CCcI3eJp.js → x-B5YnXwCz.js} +3 -3
  234. package/dist/_chunks/{zh-CN-B-igM5gY.js → zh-CN-BncsTBwM.js} +3 -3
  235. package/dist/_chunks/{zoom-out-CgVtf2Wx.js → zoom-out-Dnif4kJx.js} +4 -4
  236. package/dist/agent-catalog.json +1473 -317
  237. package/dist/agent-i18n/en.json +107 -15
  238. package/dist/components/accordion/index.js +1 -1
  239. package/dist/components/address-autocomplete/index.js +1 -1
  240. package/dist/components/address-fields/index.js +1 -1
  241. package/dist/components/agenda-card/index.js +1 -1
  242. package/dist/components/agenda-tray/index.js +1 -1
  243. package/dist/components/ai-consent-banner/index.js +1 -1
  244. package/dist/components/ai-prompt-input/index.js +1 -1
  245. package/dist/components/alert/index.js +1 -1
  246. package/dist/components/anamnesis-card/index.js +1 -1
  247. package/dist/components/annotation-marker/annotation-marker.d.ts +1 -1
  248. package/dist/components/appointment-card/index.js +2 -2
  249. package/dist/components/appointment-timeline/index.js +1 -1
  250. package/dist/components/audio-recorder/index.js +1 -1
  251. package/dist/components/bishop-score/index.js +1 -1
  252. package/dist/components/bmi-calculator/index.js +1 -1
  253. package/dist/components/booking/index.js +1 -1
  254. package/dist/components/breadcrumb/index.js +1 -1
  255. package/dist/components/calculator-dialog/index.js +1 -1
  256. package/dist/components/calendar/index.js +1 -1
  257. package/dist/components/care-plan-card/index.js +1 -1
  258. package/dist/components/care-plan-entry-card/index.js +1 -1
  259. package/dist/components/care-plan-header/index.js +1 -1
  260. package/dist/components/carousel/index.js +1 -1
  261. package/dist/components/chat-container/index.js +1 -1
  262. package/dist/components/chat-input/index.js +1 -1
  263. package/dist/components/chat-message/chat-message.d.ts +1 -1
  264. package/dist/components/chat-message/index.js +1 -1
  265. package/dist/components/checkbox-group/index.js +1 -1
  266. package/dist/components/city-input/index.js +1 -1
  267. package/dist/components/clinical-note-card/index.js +1 -1
  268. package/dist/components/color-picker/index.js +1 -1
  269. package/dist/components/combobox/index.js +1 -1
  270. package/dist/components/command-palette/index.js +1 -1
  271. package/dist/components/connection-status/index.js +1 -1
  272. package/dist/components/contact-card/index.js +1 -1
  273. package/dist/components/contact-profile-card/index.js +1 -1
  274. package/dist/components/control-room-rail/index.js +1 -1
  275. package/dist/components/copy-field/index.js +1 -1
  276. package/dist/components/country-select/index.js +1 -1
  277. package/dist/components/cycle-calculator/index.js +1 -1
  278. package/dist/components/data-table/index.js +2 -2
  279. package/dist/components/date-picker/index.js +1 -1
  280. package/dist/components/date-range-picker/index.js +1 -1
  281. package/dist/components/date-time-picker/index.js +1 -1
  282. package/dist/components/dependent-selector/index.js +1 -1
  283. package/dist/components/description-list/index.js +1 -1
  284. package/dist/components/dialog/index.js +1 -1
  285. package/dist/components/document-scanner/index.js +1 -1
  286. package/dist/components/dropdown-menu/index.js +1 -1
  287. package/dist/components/due-date-calculator/index.js +2 -2
  288. package/dist/components/editor-overlay/index.js +1 -1
  289. package/dist/components/email-input/index.js +1 -1
  290. package/dist/components/entity-summary/index.js +1 -1
  291. package/dist/components/face-scheme/detect-face-landmarks.d.ts +26 -0
  292. package/dist/components/face-scheme/detect-face-yunet.d.ts +28 -0
  293. package/dist/components/face-scheme/face-scheme-data.d.ts +113 -0
  294. package/dist/components/face-scheme/face-scheme-zones.d.ts +11 -0
  295. package/dist/components/face-scheme/face-scheme.agent.d.ts +4 -0
  296. package/dist/components/face-scheme/face-scheme.d.ts +144 -0
  297. package/dist/components/face-scheme/index.d.ts +7 -0
  298. package/dist/components/face-scheme/index.js +17 -0
  299. package/dist/components/fetal-weight/index.js +1 -1
  300. package/dist/components/field-array/index.js +1 -1
  301. package/dist/components/file-upload/index.js +1 -1
  302. package/dist/components/finished-terminal/index.js +1 -1
  303. package/dist/components/fiscal-code-input/index.js +1 -1
  304. package/dist/components/form-field/index.js +1 -1
  305. package/dist/components/freemium-paywall/index.js +1 -1
  306. package/dist/components/gestational-age-calculator/index.js +1 -1
  307. package/dist/components/hcg-doubling/index.js +1 -1
  308. package/dist/components/header/index.js +1 -1
  309. package/dist/components/header-settings/index.js +1 -1
  310. package/dist/components/iban-input/index.js +1 -1
  311. package/dist/components/icon-picker/index.js +1 -1
  312. package/dist/components/image-cropper/index.js +1 -1
  313. package/dist/components/index.d.ts +3 -1
  314. package/dist/components/key-value-pair/index.js +1 -1
  315. package/dist/components/link/index.js +1 -1
  316. package/dist/components/locale-picker/index.js +1 -1
  317. package/dist/components/map-view/index.js +1 -1
  318. package/dist/components/message-card/index.js +1 -1
  319. package/dist/components/message-tray/index.js +1 -1
  320. package/dist/components/multi-select/index.js +1 -1
  321. package/dist/components/muscle-scheme/index.d.ts +6 -0
  322. package/dist/components/muscle-scheme/index.js +16 -0
  323. package/dist/components/{anatomy-scheme/anatomy-muscle-paths.d.ts → muscle-scheme/muscle-paths.d.ts} +3 -1
  324. package/dist/components/muscle-scheme/muscle-scheme-data.d.ts +107 -0
  325. package/dist/components/muscle-scheme/muscle-scheme.agent.d.ts +6 -0
  326. package/dist/components/{anatomy-scheme/anatomy-scheme.d.ts → muscle-scheme/muscle-scheme.d.ts} +24 -27
  327. package/dist/components/nav-grid/index.js +1 -1
  328. package/dist/components/navigation-menu/index.js +1 -1
  329. package/dist/components/notes-panel/index.js +1 -1
  330. package/dist/components/notification-card/index.js +1 -1
  331. package/dist/components/notification-tray/index.js +1 -1
  332. package/dist/components/number-input/index.js +1 -1
  333. package/dist/components/operator-hero/index.js +1 -1
  334. package/dist/components/optical-prescription/index.d.ts +6 -0
  335. package/dist/components/optical-prescription/index.js +38 -0
  336. package/dist/components/optical-prescription/optical-prescription-data.d.ts +106 -0
  337. package/dist/components/optical-prescription/optical-prescription.agent.d.ts +6 -0
  338. package/dist/components/optical-prescription/optical-prescription.d.ts +43 -0
  339. package/dist/components/pagination/index.js +1 -1
  340. package/dist/components/password-input/index.js +1 -1
  341. package/dist/components/patient-details/index.js +1 -1
  342. package/dist/components/patient-search/index.js +1 -1
  343. package/dist/components/patient-summary-card/index.js +1 -1
  344. package/dist/components/patient-table/index.js +1 -1
  345. package/dist/components/payment-card/index.js +1 -1
  346. package/dist/components/payment-form/index.js +1 -1
  347. package/dist/components/pdf-viewer/index.js +1 -1
  348. package/dist/components/periodontal-chart-card/index.js +1 -1
  349. package/dist/components/permission-matrix/index.js +1 -1
  350. package/dist/components/phone-input/index.js +1 -1
  351. package/dist/components/popover/index.js +1 -1
  352. package/dist/components/postal-code-input/index.js +1 -1
  353. package/dist/components/practice-results/index.js +1 -1
  354. package/dist/components/pregnancy-dating/index.js +1 -1
  355. package/dist/components/pregnancy-weight-gain/index.js +1 -1
  356. package/dist/components/privacy-lock/index.js +1 -1
  357. package/dist/components/product-hub-tray/index.js +1 -1
  358. package/dist/components/province-select/index.js +1 -1
  359. package/dist/components/public-footer/index.js +1 -1
  360. package/dist/components/public-header/index.js +1 -1
  361. package/dist/components/radio-group/index.js +1 -1
  362. package/dist/components/radiograph-panel/index.js +1 -1
  363. package/dist/components/rating/index.js +1 -1
  364. package/dist/components/reviews-panel/index.js +1 -1
  365. package/dist/components/rich-text-editor/index.js +1 -1
  366. package/dist/components/search-bar/index.js +1 -1
  367. package/dist/components/search-input/index.js +1 -1
  368. package/dist/components/select/index.js +1 -1
  369. package/dist/components/session-countdown/index.js +1 -1
  370. package/dist/components/sheet/index.js +1 -1
  371. package/dist/components/sidebar/index.js +1 -1
  372. package/dist/components/sign-document/index.js +1 -1
  373. package/dist/components/signature-field/index.js +1 -1
  374. package/dist/components/smart-date/index.js +1 -1
  375. package/dist/components/stepper-accordion/index.js +1 -1
  376. package/dist/components/streaming-text/index.js +1 -1
  377. package/dist/components/tab-bar/index.js +1 -1
  378. package/dist/components/tabs/index.js +1 -1
  379. package/dist/components/tag/index.js +1 -1
  380. package/dist/components/task-card/index.js +1 -1
  381. package/dist/components/task-tray/index.js +1 -1
  382. package/dist/components/tasks-panel/index.js +1 -1
  383. package/dist/components/text-input/index.js +1 -1
  384. package/dist/components/theme-toggle/index.js +1 -1
  385. package/dist/components/timeline/index.js +1 -1
  386. package/dist/components/toast/index.js +1 -1
  387. package/dist/components/token-insert-menu/index.js +1 -1
  388. package/dist/components/tooth-scheme/index.js +1 -1
  389. package/dist/components/transaction-chip/index.js +1 -1
  390. package/dist/components/transcript-panel/index.js +1 -1
  391. package/dist/components/unit-converter/index.js +1 -1
  392. package/dist/components/warning-stack/index.js +1 -1
  393. package/dist/components/workflow/index.js +1 -1
  394. package/dist/i18n/locales/ar.d.ts +139 -98
  395. package/dist/i18n/locales/ar.js +141 -107
  396. package/dist/i18n/locales/de.d.ts +139 -98
  397. package/dist/i18n/locales/de.js +141 -107
  398. package/dist/i18n/locales/el.d.ts +139 -98
  399. package/dist/i18n/locales/el.js +141 -107
  400. package/dist/i18n/locales/en.d.ts +139 -98
  401. package/dist/i18n/locales/en.js +141 -107
  402. package/dist/i18n/locales/es.d.ts +139 -98
  403. package/dist/i18n/locales/es.js +141 -107
  404. package/dist/i18n/locales/fr.d.ts +139 -98
  405. package/dist/i18n/locales/fr.js +141 -107
  406. package/dist/i18n/locales/hi.d.ts +139 -98
  407. package/dist/i18n/locales/hi.js +141 -107
  408. package/dist/i18n/locales/it.d.ts +139 -98
  409. package/dist/i18n/locales/it.js +141 -107
  410. package/dist/i18n/locales/ja.d.ts +139 -98
  411. package/dist/i18n/locales/ja.js +141 -107
  412. package/dist/i18n/locales/nl.d.ts +139 -98
  413. package/dist/i18n/locales/nl.js +141 -107
  414. package/dist/i18n/locales/pl.d.ts +139 -98
  415. package/dist/i18n/locales/pl.js +141 -107
  416. package/dist/i18n/locales/pt.d.ts +139 -98
  417. package/dist/i18n/locales/pt.js +141 -107
  418. package/dist/i18n/locales/ro.d.ts +139 -98
  419. package/dist/i18n/locales/ro.js +141 -107
  420. package/dist/i18n/locales/ru.d.ts +139 -98
  421. package/dist/i18n/locales/ru.js +141 -107
  422. package/dist/i18n/locales/sq.d.ts +139 -98
  423. package/dist/i18n/locales/sq.js +141 -107
  424. package/dist/i18n/locales/sv.d.ts +139 -98
  425. package/dist/i18n/locales/sv.js +141 -107
  426. package/dist/i18n/locales/tr.d.ts +139 -98
  427. package/dist/i18n/locales/tr.js +141 -107
  428. package/dist/i18n/locales/zh.d.ts +139 -98
  429. package/dist/i18n/locales/zh.js +141 -107
  430. package/dist/index.js +710 -662
  431. package/dist/locales/ar.json +141 -100
  432. package/dist/locales/de.json +141 -100
  433. package/dist/locales/el.json +141 -100
  434. package/dist/locales/en.json +141 -100
  435. package/dist/locales/es.json +141 -100
  436. package/dist/locales/fr.json +141 -100
  437. package/dist/locales/hi.json +141 -100
  438. package/dist/locales/it.json +141 -100
  439. package/dist/locales/ja.json +141 -100
  440. package/dist/locales/nl.json +141 -100
  441. package/dist/locales/pl.json +141 -100
  442. package/dist/locales/pt.json +141 -100
  443. package/dist/locales/ro.json +141 -100
  444. package/dist/locales/ru.json +141 -100
  445. package/dist/locales/sq.json +141 -100
  446. package/dist/locales/sv.json +141 -100
  447. package/dist/locales/tr.json +141 -100
  448. package/dist/locales/zh.json +141 -100
  449. package/dist/patterns/alia-assistant/alia-asteroid-icon.d.ts +18 -0
  450. package/dist/patterns/alia-assistant/index.js +1 -1
  451. package/dist/patterns/marketplace-app-shell/index.js +1 -1
  452. package/dist/patterns/patient-shell/index.js +1 -1
  453. package/dist/tokens.css +7 -1
  454. package/package.json +13 -5
  455. package/dist/_chunks/calendar-B6soK1Yb.js +0 -17
  456. package/dist/_chunks/clipboard-list-S7s-MXQq.js +0 -25
  457. package/dist/_chunks/list-checks-BUs75d_o.js +0 -18
  458. package/dist/_chunks/sparkles-CuYXqQLg.js +0 -23
  459. package/dist/_chunks/subDays-BcYv1Lxi.js +0 -8
  460. package/dist/components/anatomy-scheme/anatomy-face-paths.d.ts +0 -15
  461. package/dist/components/anatomy-scheme/anatomy-scheme-data.d.ts +0 -121
  462. package/dist/components/anatomy-scheme/anatomy-scheme.agent.d.ts +0 -6
  463. package/dist/components/anatomy-scheme/index.d.ts +0 -6
  464. package/dist/components/anatomy-scheme/index.js +0 -17
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "packageVersion": "0.71.0",
3
+ "packageVersion": "0.72.0",
4
4
  "components": [
5
5
  {
6
6
  "kind": "component",
@@ -549,247 +549,6 @@
549
549
  }
550
550
  }
551
551
  },
552
- {
553
- "kind": "component",
554
- "id": "anatomy-scheme",
555
- "capabilities": [
556
- "pick",
557
- "set_value",
558
- "edit_inline",
559
- "view_change"
560
- ],
561
- "state": [
562
- {
563
- "name": "chart",
564
- "type": "object",
565
- "description": "Current anatomy chart — findings keyed by region id. Notes are PHI and omitted from this snapshot; read them per-region via get_region.",
566
- "descriptionKey": "ui.agent.anatomyScheme.state.chart"
567
- },
568
- {
569
- "name": "activeView",
570
- "type": "string",
571
- "description": "Id of the currently displayed anatomy view.",
572
- "descriptionKey": "ui.agent.anatomyScheme.state.activeView"
573
- }
574
- ],
575
- "actions": [
576
- {
577
- "name": "focus_region",
578
- "safety": "read",
579
- "argsType": "{ regionId: string }",
580
- "argsSchema": {
581
- "type": "object",
582
- "properties": {
583
- "regionId": {
584
- "type": "string",
585
- "description": "Region id within the active view, e.g. 'ovary-l', 'prostate', 'quadriceps-r', 'kidney-r'."
586
- }
587
- },
588
- "required": [
589
- "regionId"
590
- ]
591
- },
592
- "idempotent": true,
593
- "description": "Move focus to a specific region in the active view.",
594
- "descriptionKey": "ui.agent.anatomyScheme.actions.focusRegion"
595
- },
596
- {
597
- "name": "get_region",
598
- "safety": "phi",
599
- "argsType": "{ regionId: string }",
600
- "argsSchema": {
601
- "type": "object",
602
- "properties": {
603
- "regionId": {
604
- "type": "string",
605
- "description": "Region id within the active view, e.g. 'ovary-l', 'prostate', 'quadriceps-r', 'kidney-r'."
606
- }
607
- },
608
- "required": [
609
- "regionId"
610
- ]
611
- },
612
- "returns": "AnatomyFinding[]",
613
- "returnsSchema": {
614
- "type": "array",
615
- "items": {
616
- "type": "object",
617
- "properties": {
618
- "type": {
619
- "enum": [
620
- "observation",
621
- "lesion",
622
- "pain",
623
- "treatment",
624
- "note"
625
- ]
626
- },
627
- "note": {
628
- "type": "string"
629
- }
630
- },
631
- "required": [
632
- "type"
633
- ]
634
- }
635
- },
636
- "idempotent": true,
637
- "description": "Read the findings (incl. notes) recorded on one region.",
638
- "descriptionKey": "ui.agent.anatomyScheme.actions.getRegion"
639
- },
640
- {
641
- "name": "regions_with",
642
- "safety": "read",
643
- "argsType": "{ type: FindingType }",
644
- "argsSchema": {
645
- "type": "object",
646
- "properties": {
647
- "type": {
648
- "enum": [
649
- "observation",
650
- "lesion",
651
- "pain",
652
- "treatment",
653
- "note"
654
- ]
655
- }
656
- },
657
- "required": [
658
- "type"
659
- ]
660
- },
661
- "returns": "string[]",
662
- "returnsSchema": {
663
- "type": "array",
664
- "items": {
665
- "type": "string",
666
- "description": "Region id within the active view, e.g. 'ovary-l', 'prostate', 'quadriceps-r', 'kidney-r'."
667
- }
668
- },
669
- "idempotent": true,
670
- "description": "List the region ids carrying a given finding type.",
671
- "descriptionKey": "ui.agent.anatomyScheme.actions.regionsWith"
672
- },
673
- {
674
- "name": "set_finding",
675
- "safety": "write",
676
- "argsType": "{ regionId: string; type: FindingType; note?: string }",
677
- "argsSchema": {
678
- "type": "object",
679
- "properties": {
680
- "regionId": {
681
- "type": "string",
682
- "description": "Region id within the active view, e.g. 'ovary-l', 'prostate', 'quadriceps-r', 'kidney-r'."
683
- },
684
- "type": {
685
- "enum": [
686
- "observation",
687
- "lesion",
688
- "pain",
689
- "treatment",
690
- "note"
691
- ]
692
- },
693
- "note": {
694
- "type": "string"
695
- }
696
- },
697
- "required": [
698
- "regionId",
699
- "type"
700
- ]
701
- },
702
- "idempotent": true,
703
- "description": "Record a finding (observation / lesion / pain / treatment / note) on a region.",
704
- "descriptionKey": "ui.agent.anatomyScheme.actions.setFinding"
705
- },
706
- {
707
- "name": "remove_finding",
708
- "safety": "write",
709
- "argsType": "{ regionId: string; type: FindingType }",
710
- "argsSchema": {
711
- "type": "object",
712
- "properties": {
713
- "regionId": {
714
- "type": "string",
715
- "description": "Region id within the active view, e.g. 'ovary-l', 'prostate', 'quadriceps-r', 'kidney-r'."
716
- },
717
- "type": {
718
- "enum": [
719
- "observation",
720
- "lesion",
721
- "pain",
722
- "treatment",
723
- "note"
724
- ]
725
- }
726
- },
727
- "required": [
728
- "regionId",
729
- "type"
730
- ]
731
- },
732
- "idempotent": true,
733
- "description": "Remove a single finding type from a region.",
734
- "descriptionKey": "ui.agent.anatomyScheme.actions.removeFinding"
735
- },
736
- {
737
- "name": "clear_region",
738
- "safety": "destructive",
739
- "argsType": "{ regionId: string }",
740
- "argsSchema": {
741
- "type": "object",
742
- "properties": {
743
- "regionId": {
744
- "type": "string",
745
- "description": "Region id within the active view, e.g. 'ovary-l', 'prostate', 'quadriceps-r', 'kidney-r'."
746
- }
747
- },
748
- "required": [
749
- "regionId"
750
- ]
751
- },
752
- "idempotent": true,
753
- "description": "Clear every finding from a region.",
754
- "descriptionKey": "ui.agent.anatomyScheme.actions.clearRegion"
755
- },
756
- {
757
- "name": "set_view",
758
- "safety": "write",
759
- "argsType": "{ viewId: string }",
760
- "argsSchema": {
761
- "type": "object",
762
- "properties": {
763
- "viewId": {
764
- "type": "string",
765
- "description": "View id, e.g. 'body-front', 'face-front', 'female-reproductive', 'male-reproductive', 'urinary', 'muscular-front', 'skeletal-front'."
766
- }
767
- },
768
- "required": [
769
- "viewId"
770
- ]
771
- },
772
- "idempotent": true,
773
- "description": "Switch the active anatomy view.",
774
- "descriptionKey": "ui.agent.anatomyScheme.actions.setView"
775
- }
776
- ],
777
- "domHooks": {
778
- "root": {
779
- "attr": "data-component",
780
- "value": "anatomy-scheme"
781
- },
782
- "instanceId": {
783
- "attr": "data-component-id",
784
- "sourceProp": "id",
785
- "description": "Sourced from the id prop."
786
- },
787
- "item": {
788
- "attr": "data-region",
789
- "description": "Each rendered region `<g>` carries its region id as `data-region` and its anatomical side (`left` / `right` / `midline`) as `data-side`, so bilateral regions can be disambiguated by side. The root `data-system` / `data-view` attributes expose the active anatomy system and view."
790
- }
791
- }
792
- },
793
552
  {
794
553
  "kind": "component",
795
554
  "id": "app-frame",
@@ -3933,36 +3692,285 @@
3933
3692
  },
3934
3693
  {
3935
3694
  "kind": "component",
3936
- "id": "fetal-weight",
3695
+ "id": "face-scheme",
3937
3696
  "capabilities": [
3938
- "set_value"
3697
+ "pick",
3698
+ "set_value",
3699
+ "edit_inline",
3700
+ "view_change"
3939
3701
  ],
3940
- "state": [],
3941
- "actions": [],
3942
- "domHooks": {
3943
- "root": {
3944
- "attr": "data-component",
3945
- "value": "fetal-weight",
3946
- "description": "Marks the FetalWeight calculator (estimated fetal weight from ultrasound biometry)."
3702
+ "state": [
3703
+ {
3704
+ "name": "activeView",
3705
+ "type": "string",
3706
+ "description": "Id of the currently displayed view (front / profile-left / profile-right).",
3707
+ "descriptionKey": "ui.agent.faceScheme.state.activeView"
3947
3708
  },
3948
- "instanceId": {
3949
- "attr": "data-component-id",
3950
- "sourceProp": "id",
3951
- "description": "Sourced from the id prop. Required to address a specific calculator instance from the agent."
3709
+ {
3710
+ "name": "chart",
3711
+ "type": "Record<string, string[]>",
3712
+ "description": "Current face chart — the finding types recorded on each zone, keyed by zone id. Free-text notes and the patient photo are not exposed here.",
3713
+ "descriptionKey": "ui.agent.faceScheme.state.chart"
3714
+ },
3715
+ {
3716
+ "name": "markedZones",
3717
+ "type": "string[]",
3718
+ "description": "Zone ids carrying at least one finding.",
3719
+ "descriptionKey": "ui.agent.faceScheme.state.markedZones"
3952
3720
  }
3953
- }
3954
- },
3955
- {
3956
- "kind": "component",
3957
- "id": "field-array",
3958
- "capabilities": [
3959
- "edit_inline"
3960
3721
  ],
3961
- "state": [
3722
+ "actions": [
3962
3723
  {
3963
- "name": "count",
3964
- "type": "number",
3965
- "description": "Number of rows currently rendered.",
3724
+ "name": "focus_zone",
3725
+ "safety": "read",
3726
+ "argsType": "{ id: string }",
3727
+ "argsSchema": {
3728
+ "type": "object",
3729
+ "properties": {
3730
+ "id": {
3731
+ "type": "string",
3732
+ "description": "Face-zone id (e.g. 'glabella', 'nasolabialFold', 'forehead', 'mandibularAngleLeft' on the front view; 'cheekbone', 'masseter', 'chin' on a profile view)."
3733
+ }
3734
+ },
3735
+ "required": [
3736
+ "id"
3737
+ ]
3738
+ },
3739
+ "idempotent": true,
3740
+ "description": "Move focus to a specific face zone by id.",
3741
+ "descriptionKey": "ui.agent.faceScheme.actions.focusZone"
3742
+ },
3743
+ {
3744
+ "name": "get_zone",
3745
+ "safety": "read",
3746
+ "argsType": "{ id: string }",
3747
+ "argsSchema": {
3748
+ "type": "object",
3749
+ "properties": {
3750
+ "id": {
3751
+ "type": "string",
3752
+ "description": "Face-zone id (e.g. 'glabella', 'nasolabialFold', 'forehead', 'mandibularAngleLeft' on the front view; 'cheekbone', 'masseter', 'chin' on a profile view)."
3753
+ }
3754
+ },
3755
+ "required": [
3756
+ "id"
3757
+ ]
3758
+ },
3759
+ "returns": "string[]",
3760
+ "returnsSchema": {
3761
+ "type": "array",
3762
+ "items": {
3763
+ "enum": [
3764
+ "observation",
3765
+ "treatment",
3766
+ "concern",
3767
+ "note"
3768
+ ]
3769
+ }
3770
+ },
3771
+ "idempotent": true,
3772
+ "description": "Read the finding types recorded on one zone (notes are not returned).",
3773
+ "descriptionKey": "ui.agent.faceScheme.actions.getZone"
3774
+ },
3775
+ {
3776
+ "name": "zones_with",
3777
+ "safety": "read",
3778
+ "argsType": "{ finding: FaceFindingType }",
3779
+ "argsSchema": {
3780
+ "type": "object",
3781
+ "properties": {
3782
+ "finding": {
3783
+ "enum": [
3784
+ "observation",
3785
+ "treatment",
3786
+ "concern",
3787
+ "note"
3788
+ ]
3789
+ }
3790
+ },
3791
+ "required": [
3792
+ "finding"
3793
+ ]
3794
+ },
3795
+ "returns": "string[]",
3796
+ "returnsSchema": {
3797
+ "type": "array",
3798
+ "items": {
3799
+ "type": "string",
3800
+ "description": "Face-zone id (e.g. 'glabella', 'nasolabialFold', 'forehead', 'mandibularAngleLeft' on the front view; 'cheekbone', 'masseter', 'chin' on a profile view)."
3801
+ }
3802
+ },
3803
+ "idempotent": true,
3804
+ "description": "List the zone ids carrying a given finding type.",
3805
+ "descriptionKey": "ui.agent.faceScheme.actions.zonesWith"
3806
+ },
3807
+ {
3808
+ "name": "set_finding",
3809
+ "safety": "write",
3810
+ "argsType": "{ id: string; finding: FaceFindingType; note?: string }",
3811
+ "argsSchema": {
3812
+ "type": "object",
3813
+ "properties": {
3814
+ "id": {
3815
+ "type": "string",
3816
+ "description": "Face-zone id (e.g. 'glabella', 'nasolabialFold', 'forehead', 'mandibularAngleLeft' on the front view; 'cheekbone', 'masseter', 'chin' on a profile view)."
3817
+ },
3818
+ "finding": {
3819
+ "enum": [
3820
+ "observation",
3821
+ "treatment",
3822
+ "concern",
3823
+ "note"
3824
+ ]
3825
+ },
3826
+ "note": {
3827
+ "type": "string"
3828
+ }
3829
+ },
3830
+ "required": [
3831
+ "id",
3832
+ "finding"
3833
+ ]
3834
+ },
3835
+ "idempotent": true,
3836
+ "description": "Record a finding on a zone, with an optional free-text note.",
3837
+ "descriptionKey": "ui.agent.faceScheme.actions.setFinding"
3838
+ },
3839
+ {
3840
+ "name": "remove_finding",
3841
+ "safety": "write",
3842
+ "argsType": "{ id: string; finding: FaceFindingType }",
3843
+ "argsSchema": {
3844
+ "type": "object",
3845
+ "properties": {
3846
+ "id": {
3847
+ "type": "string",
3848
+ "description": "Face-zone id (e.g. 'glabella', 'nasolabialFold', 'forehead', 'mandibularAngleLeft' on the front view; 'cheekbone', 'masseter', 'chin' on a profile view)."
3849
+ },
3850
+ "finding": {
3851
+ "enum": [
3852
+ "observation",
3853
+ "treatment",
3854
+ "concern",
3855
+ "note"
3856
+ ]
3857
+ }
3858
+ },
3859
+ "required": [
3860
+ "id",
3861
+ "finding"
3862
+ ]
3863
+ },
3864
+ "idempotent": true,
3865
+ "description": "Remove a single finding from a zone.",
3866
+ "descriptionKey": "ui.agent.faceScheme.actions.removeFinding"
3867
+ },
3868
+ {
3869
+ "name": "clear_zone",
3870
+ "safety": "destructive",
3871
+ "argsType": "{ id: string }",
3872
+ "argsSchema": {
3873
+ "type": "object",
3874
+ "properties": {
3875
+ "id": {
3876
+ "type": "string",
3877
+ "description": "Face-zone id (e.g. 'glabella', 'nasolabialFold', 'forehead', 'mandibularAngleLeft' on the front view; 'cheekbone', 'masseter', 'chin' on a profile view)."
3878
+ }
3879
+ },
3880
+ "required": [
3881
+ "id"
3882
+ ]
3883
+ },
3884
+ "idempotent": true,
3885
+ "description": "Clear every finding from a zone.",
3886
+ "descriptionKey": "ui.agent.faceScheme.actions.clearZone"
3887
+ },
3888
+ {
3889
+ "name": "auto_align",
3890
+ "safety": "write",
3891
+ "argsType": "{}",
3892
+ "argsSchema": {
3893
+ "type": "object",
3894
+ "properties": {}
3895
+ },
3896
+ "idempotent": true,
3897
+ "description": "Run the on-device detector to align the zone overlay to the patient photo (works on the active view — front or profile). No-op if detection is disabled or no face is found.",
3898
+ "descriptionKey": "ui.agent.faceScheme.actions.autoAlign"
3899
+ },
3900
+ {
3901
+ "name": "set_view",
3902
+ "safety": "write",
3903
+ "argsType": "{ view: FaceViewId }",
3904
+ "argsSchema": {
3905
+ "type": "object",
3906
+ "properties": {
3907
+ "view": {
3908
+ "type": "string",
3909
+ "enum": [
3910
+ "front",
3911
+ "profile-left",
3912
+ "profile-right"
3913
+ ],
3914
+ "description": "Active view id: 'front', 'profile-left', or 'profile-right'."
3915
+ }
3916
+ },
3917
+ "required": [
3918
+ "view"
3919
+ ]
3920
+ },
3921
+ "idempotent": true,
3922
+ "description": "Switch the active view ('front' / 'profile-left' / 'profile-right'). Each view renders a different zone set, so switch before focusing a zone that belongs to another view.",
3923
+ "descriptionKey": "ui.agent.faceScheme.actions.setView"
3924
+ }
3925
+ ],
3926
+ "domHooks": {
3927
+ "root": {
3928
+ "attr": "data-component",
3929
+ "value": "face-scheme"
3930
+ },
3931
+ "instanceId": {
3932
+ "attr": "data-component-id",
3933
+ "sourceProp": "id",
3934
+ "description": "Sourced from the id prop."
3935
+ },
3936
+ "item": {
3937
+ "attr": "data-zone",
3938
+ "description": "Each clickable zone `<g>` carries its zone id as `data-zone` (plus `data-side` for the anatomical side). The root `<div>` carries the active view id as `data-view` — only the zones for the active view are in the DOM."
3939
+ }
3940
+ }
3941
+ },
3942
+ {
3943
+ "kind": "component",
3944
+ "id": "fetal-weight",
3945
+ "capabilities": [
3946
+ "set_value"
3947
+ ],
3948
+ "state": [],
3949
+ "actions": [],
3950
+ "domHooks": {
3951
+ "root": {
3952
+ "attr": "data-component",
3953
+ "value": "fetal-weight",
3954
+ "description": "Marks the FetalWeight calculator (estimated fetal weight from ultrasound biometry)."
3955
+ },
3956
+ "instanceId": {
3957
+ "attr": "data-component-id",
3958
+ "sourceProp": "id",
3959
+ "description": "Sourced from the id prop. Required to address a specific calculator instance from the agent."
3960
+ }
3961
+ }
3962
+ },
3963
+ {
3964
+ "kind": "component",
3965
+ "id": "field-array",
3966
+ "capabilities": [
3967
+ "edit_inline"
3968
+ ],
3969
+ "state": [
3970
+ {
3971
+ "name": "count",
3972
+ "type": "number",
3973
+ "description": "Number of rows currently rendered.",
3966
3974
  "descriptionKey": "ui.agent.fieldArray.state.count"
3967
3975
  }
3968
3976
  ],
@@ -5290,66 +5298,307 @@
5290
5298
  },
5291
5299
  {
5292
5300
  "kind": "component",
5293
- "id": "nav-grid",
5301
+ "id": "muscle-scheme",
5294
5302
  "capabilities": [
5295
- "navigate"
5303
+ "pick",
5304
+ "set_value",
5305
+ "edit_inline",
5306
+ "view_change"
5296
5307
  ],
5297
5308
  "state": [
5298
5309
  {
5299
- "name": "itemCount",
5300
- "type": "number",
5301
- "description": "Number of navigable tiles currently rendered in the grid.",
5302
- "descriptionKey": "ui.agent.navGrid.state.itemCount"
5310
+ "name": "chart",
5311
+ "type": "object",
5312
+ "description": "Current muscle chart findings keyed by region id. Notes are PHI and omitted from this snapshot; read them per-region via get_region.",
5313
+ "descriptionKey": "ui.agent.muscleScheme.state.chart"
5314
+ },
5315
+ {
5316
+ "name": "activeView",
5317
+ "type": "string",
5318
+ "description": "Id of the currently displayed muscle view.",
5319
+ "descriptionKey": "ui.agent.muscleScheme.state.activeView"
5303
5320
  }
5304
5321
  ],
5305
5322
  "actions": [
5306
5323
  {
5307
- "name": "open_item",
5308
- "safety": "write",
5309
- "argsType": "{ id: string }",
5324
+ "name": "focus_region",
5325
+ "safety": "read",
5326
+ "argsType": "{ regionId: string }",
5310
5327
  "argsSchema": {
5311
5328
  "type": "object",
5312
5329
  "properties": {
5313
- "id": {
5330
+ "regionId": {
5314
5331
  "type": "string",
5315
- "description": "Stable opaque tile id (emitted as data-nav-item-id on each tile)."
5332
+ "description": "Per-muscle region id within the active view, e.g. 'quadriceps-r', 'biceps-l', 'pectoralis-r', 'trapezius-l'."
5316
5333
  }
5317
5334
  },
5318
5335
  "required": [
5319
- "id"
5336
+ "regionId"
5320
5337
  ]
5321
5338
  },
5322
- "openWorld": false,
5323
- "examples": [
5324
- {
5325
- "args": {
5326
- "id": "billing"
5327
- },
5328
- "note": "Open the \"billing\" settings section."
5329
- }
5330
- ],
5331
- "description": "Activate the tile with the given id (navigates or fires its select handler).",
5332
- "descriptionKey": "ui.agent.navGrid.actions.openItem"
5333
- }
5334
- ],
5335
- "domHooks": {
5336
- "root": {
5337
- "attr": "data-component",
5338
- "value": "nav-grid",
5339
- "description": "Marks the NavGrid nav landmark."
5340
- },
5341
- "instanceId": {
5342
- "attr": "data-component-id",
5343
- "sourceProp": "id",
5344
- "description": "Sourced from the id prop. Required to address a specific grid from the agent."
5339
+ "idempotent": true,
5340
+ "description": "Move focus to a specific region in the active view.",
5341
+ "descriptionKey": "ui.agent.muscleScheme.actions.focusRegion"
5345
5342
  },
5346
- "item": {
5347
- "attr": "data-nav-item-id",
5348
- "sourceProp": "item id",
5349
- "description": "Stable opaque id of a tile, sourced from each item.id. open_item targets this attribute."
5350
- }
5351
- }
5352
- },
5343
+ {
5344
+ "name": "get_region",
5345
+ "safety": "phi",
5346
+ "argsType": "{ regionId: string }",
5347
+ "argsSchema": {
5348
+ "type": "object",
5349
+ "properties": {
5350
+ "regionId": {
5351
+ "type": "string",
5352
+ "description": "Per-muscle region id within the active view, e.g. 'quadriceps-r', 'biceps-l', 'pectoralis-r', 'trapezius-l'."
5353
+ }
5354
+ },
5355
+ "required": [
5356
+ "regionId"
5357
+ ]
5358
+ },
5359
+ "returns": "MuscleFinding[]",
5360
+ "returnsSchema": {
5361
+ "type": "array",
5362
+ "items": {
5363
+ "type": "object",
5364
+ "properties": {
5365
+ "type": {
5366
+ "enum": [
5367
+ "observation",
5368
+ "lesion",
5369
+ "pain",
5370
+ "treatment",
5371
+ "note"
5372
+ ]
5373
+ },
5374
+ "note": {
5375
+ "type": "string"
5376
+ }
5377
+ },
5378
+ "required": [
5379
+ "type"
5380
+ ]
5381
+ }
5382
+ },
5383
+ "idempotent": true,
5384
+ "description": "Read the findings (incl. notes) recorded on one region.",
5385
+ "descriptionKey": "ui.agent.muscleScheme.actions.getRegion"
5386
+ },
5387
+ {
5388
+ "name": "regions_with",
5389
+ "safety": "read",
5390
+ "argsType": "{ type: FindingType }",
5391
+ "argsSchema": {
5392
+ "type": "object",
5393
+ "properties": {
5394
+ "type": {
5395
+ "enum": [
5396
+ "observation",
5397
+ "lesion",
5398
+ "pain",
5399
+ "treatment",
5400
+ "note"
5401
+ ]
5402
+ }
5403
+ },
5404
+ "required": [
5405
+ "type"
5406
+ ]
5407
+ },
5408
+ "returns": "string[]",
5409
+ "returnsSchema": {
5410
+ "type": "array",
5411
+ "items": {
5412
+ "type": "string",
5413
+ "description": "Per-muscle region id within the active view, e.g. 'quadriceps-r', 'biceps-l', 'pectoralis-r', 'trapezius-l'."
5414
+ }
5415
+ },
5416
+ "idempotent": true,
5417
+ "description": "List the region ids carrying a given finding type.",
5418
+ "descriptionKey": "ui.agent.muscleScheme.actions.regionsWith"
5419
+ },
5420
+ {
5421
+ "name": "set_finding",
5422
+ "safety": "write",
5423
+ "argsType": "{ regionId: string; type: FindingType; note?: string }",
5424
+ "argsSchema": {
5425
+ "type": "object",
5426
+ "properties": {
5427
+ "regionId": {
5428
+ "type": "string",
5429
+ "description": "Per-muscle region id within the active view, e.g. 'quadriceps-r', 'biceps-l', 'pectoralis-r', 'trapezius-l'."
5430
+ },
5431
+ "type": {
5432
+ "enum": [
5433
+ "observation",
5434
+ "lesion",
5435
+ "pain",
5436
+ "treatment",
5437
+ "note"
5438
+ ]
5439
+ },
5440
+ "note": {
5441
+ "type": "string"
5442
+ }
5443
+ },
5444
+ "required": [
5445
+ "regionId",
5446
+ "type"
5447
+ ]
5448
+ },
5449
+ "idempotent": true,
5450
+ "description": "Record a finding (observation / lesion / pain / treatment / note) on a region.",
5451
+ "descriptionKey": "ui.agent.muscleScheme.actions.setFinding"
5452
+ },
5453
+ {
5454
+ "name": "remove_finding",
5455
+ "safety": "write",
5456
+ "argsType": "{ regionId: string; type: FindingType }",
5457
+ "argsSchema": {
5458
+ "type": "object",
5459
+ "properties": {
5460
+ "regionId": {
5461
+ "type": "string",
5462
+ "description": "Per-muscle region id within the active view, e.g. 'quadriceps-r', 'biceps-l', 'pectoralis-r', 'trapezius-l'."
5463
+ },
5464
+ "type": {
5465
+ "enum": [
5466
+ "observation",
5467
+ "lesion",
5468
+ "pain",
5469
+ "treatment",
5470
+ "note"
5471
+ ]
5472
+ }
5473
+ },
5474
+ "required": [
5475
+ "regionId",
5476
+ "type"
5477
+ ]
5478
+ },
5479
+ "idempotent": true,
5480
+ "description": "Remove a single finding type from a region.",
5481
+ "descriptionKey": "ui.agent.muscleScheme.actions.removeFinding"
5482
+ },
5483
+ {
5484
+ "name": "clear_region",
5485
+ "safety": "destructive",
5486
+ "argsType": "{ regionId: string }",
5487
+ "argsSchema": {
5488
+ "type": "object",
5489
+ "properties": {
5490
+ "regionId": {
5491
+ "type": "string",
5492
+ "description": "Per-muscle region id within the active view, e.g. 'quadriceps-r', 'biceps-l', 'pectoralis-r', 'trapezius-l'."
5493
+ }
5494
+ },
5495
+ "required": [
5496
+ "regionId"
5497
+ ]
5498
+ },
5499
+ "idempotent": true,
5500
+ "description": "Clear every finding from a region.",
5501
+ "descriptionKey": "ui.agent.muscleScheme.actions.clearRegion"
5502
+ },
5503
+ {
5504
+ "name": "set_view",
5505
+ "safety": "write",
5506
+ "argsType": "{ viewId: string }",
5507
+ "argsSchema": {
5508
+ "type": "object",
5509
+ "properties": {
5510
+ "viewId": {
5511
+ "type": "string",
5512
+ "description": "View id, e.g. 'muscular-front', 'muscular-back', 'muscular-front-female', 'muscular-back-female', 'muscular-front-child', 'muscular-back-child'."
5513
+ }
5514
+ },
5515
+ "required": [
5516
+ "viewId"
5517
+ ]
5518
+ },
5519
+ "idempotent": true,
5520
+ "description": "Switch the active muscle view.",
5521
+ "descriptionKey": "ui.agent.muscleScheme.actions.setView"
5522
+ }
5523
+ ],
5524
+ "domHooks": {
5525
+ "root": {
5526
+ "attr": "data-component",
5527
+ "value": "muscle-scheme"
5528
+ },
5529
+ "instanceId": {
5530
+ "attr": "data-component-id",
5531
+ "sourceProp": "id",
5532
+ "description": "Sourced from the id prop."
5533
+ },
5534
+ "item": {
5535
+ "attr": "data-region",
5536
+ "description": "Each rendered region `<g>` carries its region id as `data-region` and its anatomical side (`left` / `right` / `midline`) as `data-side`, so bilateral regions can be disambiguated by side. The root `data-view` attribute exposes the active muscle view."
5537
+ }
5538
+ }
5539
+ },
5540
+ {
5541
+ "kind": "component",
5542
+ "id": "nav-grid",
5543
+ "capabilities": [
5544
+ "navigate"
5545
+ ],
5546
+ "state": [
5547
+ {
5548
+ "name": "itemCount",
5549
+ "type": "number",
5550
+ "description": "Number of navigable tiles currently rendered in the grid.",
5551
+ "descriptionKey": "ui.agent.navGrid.state.itemCount"
5552
+ }
5553
+ ],
5554
+ "actions": [
5555
+ {
5556
+ "name": "open_item",
5557
+ "safety": "write",
5558
+ "argsType": "{ id: string }",
5559
+ "argsSchema": {
5560
+ "type": "object",
5561
+ "properties": {
5562
+ "id": {
5563
+ "type": "string",
5564
+ "description": "Stable opaque tile id (emitted as data-nav-item-id on each tile)."
5565
+ }
5566
+ },
5567
+ "required": [
5568
+ "id"
5569
+ ]
5570
+ },
5571
+ "openWorld": false,
5572
+ "examples": [
5573
+ {
5574
+ "args": {
5575
+ "id": "billing"
5576
+ },
5577
+ "note": "Open the \"billing\" settings section."
5578
+ }
5579
+ ],
5580
+ "description": "Activate the tile with the given id (navigates or fires its select handler).",
5581
+ "descriptionKey": "ui.agent.navGrid.actions.openItem"
5582
+ }
5583
+ ],
5584
+ "domHooks": {
5585
+ "root": {
5586
+ "attr": "data-component",
5587
+ "value": "nav-grid",
5588
+ "description": "Marks the NavGrid nav landmark."
5589
+ },
5590
+ "instanceId": {
5591
+ "attr": "data-component-id",
5592
+ "sourceProp": "id",
5593
+ "description": "Sourced from the id prop. Required to address a specific grid from the agent."
5594
+ },
5595
+ "item": {
5596
+ "attr": "data-nav-item-id",
5597
+ "sourceProp": "item id",
5598
+ "description": "Stable opaque id of a tile, sourced from each item.id. open_item targets this attribute."
5599
+ }
5600
+ }
5601
+ },
5353
5602
  {
5354
5603
  "kind": "component",
5355
5604
  "id": "navigation-menu",
@@ -5856,22 +6105,288 @@
5856
6105
  },
5857
6106
  {
5858
6107
  "kind": "component",
5859
- "id": "otp-input",
6108
+ "id": "optical-prescription",
5860
6109
  "capabilities": [
6110
+ "pick",
6111
+ "edit_inline",
5861
6112
  "set_value"
5862
6113
  ],
5863
6114
  "state": [
5864
6115
  {
5865
- "name": "value",
5866
- "type": "string",
5867
- "description": "Current digits entered, packed into a single string.",
5868
- "descriptionKey": "ui.agent.otpInput.state.value"
6116
+ "name": "prescription",
6117
+ "type": "object",
6118
+ "description": "Current prescription — refraction rows per band/eye plus PD, lens type and axis system. The free-text note is PHI and omitted; read it via get_notes.",
6119
+ "descriptionKey": "ui.agent.opticalPrescription.state.prescription"
5869
6120
  },
5870
6121
  {
5871
- "name": "isComplete",
5872
- "type": "boolean",
5873
- "description": "Whether all required digits have been entered.",
5874
- "descriptionKey": "ui.agent.otpInput.state.isComplete"
6122
+ "name": "bands",
6123
+ "type": "string[]",
6124
+ "description": "Distance bands carrying at least one refraction value (far / intermediate / near).",
6125
+ "descriptionKey": "ui.agent.opticalPrescription.state.bands"
6126
+ }
6127
+ ],
6128
+ "actions": [
6129
+ {
6130
+ "name": "focus_eye",
6131
+ "safety": "read",
6132
+ "argsType": "{ eye: Eye; band?: DistanceBand }",
6133
+ "argsSchema": {
6134
+ "type": "object",
6135
+ "properties": {
6136
+ "eye": {
6137
+ "enum": [
6138
+ "od",
6139
+ "os"
6140
+ ],
6141
+ "description": "Eye — `od` (right eye) or `os` (left eye)."
6142
+ },
6143
+ "band": {
6144
+ "enum": [
6145
+ "far",
6146
+ "intermediate",
6147
+ "near"
6148
+ ],
6149
+ "description": "Distance band — `far` (per lontano), `intermediate`, `near` (per vicino)."
6150
+ }
6151
+ },
6152
+ "required": [
6153
+ "eye"
6154
+ ]
6155
+ },
6156
+ "idempotent": true,
6157
+ "description": "Move focus to an eye's row (first editable cell in interactive mode), optionally within a specific band.",
6158
+ "descriptionKey": "ui.agent.opticalPrescription.actions.focusEye"
6159
+ },
6160
+ {
6161
+ "name": "get_row",
6162
+ "safety": "read",
6163
+ "argsType": "{ band: DistanceBand; eye: Eye }",
6164
+ "argsSchema": {
6165
+ "type": "object",
6166
+ "properties": {
6167
+ "band": {
6168
+ "enum": [
6169
+ "far",
6170
+ "intermediate",
6171
+ "near"
6172
+ ],
6173
+ "description": "Distance band — `far` (per lontano), `intermediate`, `near` (per vicino)."
6174
+ },
6175
+ "eye": {
6176
+ "enum": [
6177
+ "od",
6178
+ "os"
6179
+ ],
6180
+ "description": "Eye — `od` (right eye) or `os` (left eye)."
6181
+ }
6182
+ },
6183
+ "required": [
6184
+ "band",
6185
+ "eye"
6186
+ ]
6187
+ },
6188
+ "returns": "RefractionRow | undefined",
6189
+ "returnsSchema": {
6190
+ "type": "object",
6191
+ "properties": {
6192
+ "sphere": {
6193
+ "type": "number"
6194
+ },
6195
+ "cylinder": {
6196
+ "type": "number"
6197
+ },
6198
+ "axis": {
6199
+ "type": "number",
6200
+ "minimum": 0,
6201
+ "maximum": 180
6202
+ },
6203
+ "add": {
6204
+ "type": "number"
6205
+ },
6206
+ "prism": {
6207
+ "type": "number"
6208
+ },
6209
+ "base": {
6210
+ "enum": [
6211
+ "up",
6212
+ "down",
6213
+ "in",
6214
+ "out"
6215
+ ]
6216
+ }
6217
+ }
6218
+ },
6219
+ "idempotent": true,
6220
+ "description": "Read one eye's refraction row at a distance band.",
6221
+ "descriptionKey": "ui.agent.opticalPrescription.actions.getRow"
6222
+ },
6223
+ {
6224
+ "name": "get_notes",
6225
+ "safety": "phi",
6226
+ "returns": "string",
6227
+ "returnsSchema": {
6228
+ "type": "string"
6229
+ },
6230
+ "idempotent": true,
6231
+ "description": "Read the free-text clinical note on the prescription.",
6232
+ "descriptionKey": "ui.agent.opticalPrescription.actions.getNotes"
6233
+ },
6234
+ {
6235
+ "name": "set_cell",
6236
+ "safety": "write",
6237
+ "argsType": "{ band: DistanceBand; eye: Eye; field: keyof RefractionRow; value: number | PrismBase | null }",
6238
+ "argsSchema": {
6239
+ "type": "object",
6240
+ "properties": {
6241
+ "band": {
6242
+ "enum": [
6243
+ "far",
6244
+ "intermediate",
6245
+ "near"
6246
+ ],
6247
+ "description": "Distance band — `far` (per lontano), `intermediate`, `near` (per vicino)."
6248
+ },
6249
+ "eye": {
6250
+ "enum": [
6251
+ "od",
6252
+ "os"
6253
+ ],
6254
+ "description": "Eye — `od` (right eye) or `os` (left eye)."
6255
+ },
6256
+ "field": {
6257
+ "enum": [
6258
+ "sphere",
6259
+ "cylinder",
6260
+ "axis",
6261
+ "add",
6262
+ "prism",
6263
+ "base"
6264
+ ],
6265
+ "description": "Refraction column — dioptric `sphere` / `cylinder` / `add` (0.25 steps), `axis` (0–180°), `prism`, or `base` (a direction enum)."
6266
+ },
6267
+ "value": {
6268
+ "description": "New cell value — a number for the dioptric/axis/prism columns, a base-direction string for `base`, or null to clear."
6269
+ }
6270
+ },
6271
+ "required": [
6272
+ "band",
6273
+ "eye",
6274
+ "field",
6275
+ "value"
6276
+ ]
6277
+ },
6278
+ "idempotent": true,
6279
+ "description": "Set (or clear, with null) a single refraction cell — sphere / cylinder / axis / add / prism / base.",
6280
+ "descriptionKey": "ui.agent.opticalPrescription.actions.setCell"
6281
+ },
6282
+ {
6283
+ "name": "set_value",
6284
+ "safety": "write",
6285
+ "argsType": "{ value: OpticalPrescriptionValue }",
6286
+ "argsSchema": {
6287
+ "type": "object",
6288
+ "properties": {
6289
+ "value": {
6290
+ "type": "object",
6291
+ "properties": {
6292
+ "bands": {
6293
+ "type": "object",
6294
+ "description": "Refraction rows keyed by band (`far` / `intermediate` / `near`) then eye (`od` / `os`)."
6295
+ },
6296
+ "pd": {
6297
+ "type": "number",
6298
+ "description": "Interpupillary distance, mm."
6299
+ },
6300
+ "lensType": {
6301
+ "enum": [
6302
+ "single-vision",
6303
+ "bifocal",
6304
+ "progressive"
6305
+ ]
6306
+ },
6307
+ "axisSystem": {
6308
+ "enum": [
6309
+ "tabo",
6310
+ "int"
6311
+ ]
6312
+ },
6313
+ "notes": {
6314
+ "type": "string",
6315
+ "description": "Free-text note — PHI."
6316
+ }
6317
+ },
6318
+ "required": [
6319
+ "bands"
6320
+ ]
6321
+ }
6322
+ },
6323
+ "required": [
6324
+ "value"
6325
+ ]
6326
+ },
6327
+ "idempotent": true,
6328
+ "description": "Replace the entire prescription value.",
6329
+ "descriptionKey": "ui.agent.opticalPrescription.actions.setValue"
6330
+ },
6331
+ {
6332
+ "name": "clear_band",
6333
+ "safety": "destructive",
6334
+ "argsType": "{ band: DistanceBand }",
6335
+ "argsSchema": {
6336
+ "type": "object",
6337
+ "properties": {
6338
+ "band": {
6339
+ "enum": [
6340
+ "far",
6341
+ "intermediate",
6342
+ "near"
6343
+ ],
6344
+ "description": "Distance band — `far` (per lontano), `intermediate`, `near` (per vicino)."
6345
+ }
6346
+ },
6347
+ "required": [
6348
+ "band"
6349
+ ]
6350
+ },
6351
+ "idempotent": true,
6352
+ "description": "Clear every refraction row in a distance band.",
6353
+ "descriptionKey": "ui.agent.opticalPrescription.actions.clearBand"
6354
+ }
6355
+ ],
6356
+ "domHooks": {
6357
+ "root": {
6358
+ "attr": "data-component",
6359
+ "value": "optical-prescription"
6360
+ },
6361
+ "instanceId": {
6362
+ "attr": "data-component-id",
6363
+ "sourceProp": "id",
6364
+ "description": "Sourced from the id prop."
6365
+ },
6366
+ "item": {
6367
+ "attr": "data-eye",
6368
+ "description": "Each refraction row carries its eye (`od` / `os`) as `data-eye` and its distance band as `data-band`; each editable cell carries the column key as `data-field`. The root `data-mode` attribute exposes interactive vs display."
6369
+ }
6370
+ }
6371
+ },
6372
+ {
6373
+ "kind": "component",
6374
+ "id": "otp-input",
6375
+ "capabilities": [
6376
+ "set_value"
6377
+ ],
6378
+ "state": [
6379
+ {
6380
+ "name": "value",
6381
+ "type": "string",
6382
+ "description": "Current digits entered, packed into a single string.",
6383
+ "descriptionKey": "ui.agent.otpInput.state.value"
6384
+ },
6385
+ {
6386
+ "name": "isComplete",
6387
+ "type": "boolean",
6388
+ "description": "Whether all required digits have been entered.",
6389
+ "descriptionKey": "ui.agent.otpInput.state.isComplete"
5875
6390
  }
5876
6391
  ],
5877
6392
  "actions": [
@@ -11299,6 +11814,647 @@
11299
11814
  }
11300
11815
  ]
11301
11816
  },
11817
+ {
11818
+ "kind": "pattern",
11819
+ "id": "care-plan-editor-aesthetic",
11820
+ "composes": [
11821
+ {
11822
+ "component": "care-plan-header",
11823
+ "as": "planHeader"
11824
+ },
11825
+ {
11826
+ "component": "muscle-scheme",
11827
+ "as": "bodyMap",
11828
+ "entity": "region"
11829
+ },
11830
+ {
11831
+ "component": "face-scheme",
11832
+ "as": "faceMap",
11833
+ "entity": "zone"
11834
+ },
11835
+ {
11836
+ "component": "data-table",
11837
+ "as": "treatmentsGrid",
11838
+ "entity": "treatment"
11839
+ },
11840
+ {
11841
+ "component": "control-room-rail",
11842
+ "as": "toolRail"
11843
+ },
11844
+ {
11845
+ "component": "entity-summary",
11846
+ "as": "planSummary"
11847
+ }
11848
+ ],
11849
+ "workflows": [
11850
+ {
11851
+ "name": "select_plan",
11852
+ "safety": "read",
11853
+ "description": "Open one of the patient's aesthetic-medicine care plans from the plan list.",
11854
+ "descriptionKey": "ui.agent.aestheticCarePlanEditor.workflows.selectPlan",
11855
+ "uiActions": [],
11856
+ "apiActions": [
11857
+ "carePlan.get"
11858
+ ]
11859
+ },
11860
+ {
11861
+ "name": "add_plan",
11862
+ "safety": "write",
11863
+ "description": "Create a new aesthetic-medicine care plan for the patient.",
11864
+ "descriptionKey": "ui.agent.aestheticCarePlanEditor.workflows.addPlan",
11865
+ "uiActions": [],
11866
+ "apiActions": [
11867
+ "carePlan.create"
11868
+ ]
11869
+ },
11870
+ {
11871
+ "name": "inspect_area",
11872
+ "safety": "read",
11873
+ "description": "Focus a body or face region on the anatomy anchor and read its charted treatment areas.",
11874
+ "descriptionKey": "ui.agent.aestheticCarePlanEditor.workflows.inspectArea",
11875
+ "uiActions": [
11876
+ "muscle-scheme.focus_region",
11877
+ "face-scheme.focus_zone"
11878
+ ],
11879
+ "stateReads": [
11880
+ "muscle-scheme.chart",
11881
+ "face-scheme.chart"
11882
+ ],
11883
+ "apiActions": []
11884
+ },
11885
+ {
11886
+ "name": "mark_treatment_done",
11887
+ "safety": "write",
11888
+ "description": "Mark a planned treatment as executed from its row action in the treatments grid.",
11889
+ "descriptionKey": "ui.agent.aestheticCarePlanEditor.workflows.markTreatmentDone",
11890
+ "uiActions": [],
11891
+ "stateReads": [
11892
+ "data-table.selection"
11893
+ ],
11894
+ "apiActions": [
11895
+ "carePlanTreatment.update"
11896
+ ]
11897
+ },
11898
+ {
11899
+ "name": "add_treatment",
11900
+ "safety": "write",
11901
+ "description": "Add a planned treatment row to the current care plan.",
11902
+ "descriptionKey": "ui.agent.aestheticCarePlanEditor.workflows.addTreatment",
11903
+ "uiActions": [],
11904
+ "apiActions": [
11905
+ "carePlanTreatment.create"
11906
+ ]
11907
+ },
11908
+ {
11909
+ "name": "remove_treatment",
11910
+ "safety": "destructive",
11911
+ "description": "Remove the selected treatment(s) from the plan (read data-table.selection for the targets).",
11912
+ "descriptionKey": "ui.agent.aestheticCarePlanEditor.workflows.removeTreatment",
11913
+ "uiActions": [],
11914
+ "stateReads": [
11915
+ "data-table.selection"
11916
+ ],
11917
+ "apiActions": [
11918
+ "carePlanTreatment.delete"
11919
+ ]
11920
+ },
11921
+ {
11922
+ "name": "save_plan",
11923
+ "safety": "write",
11924
+ "description": "Persist the current edits to the aesthetic-medicine care plan.",
11925
+ "descriptionKey": "ui.agent.aestheticCarePlanEditor.workflows.savePlan",
11926
+ "uiActions": [],
11927
+ "apiActions": [
11928
+ "carePlan.update"
11929
+ ]
11930
+ },
11931
+ {
11932
+ "name": "regenerate_summary",
11933
+ "safety": "write",
11934
+ "description": "Regenerate the AI plan summary in the docked Plan summary tool.",
11935
+ "descriptionKey": "ui.agent.aestheticCarePlanEditor.workflows.regenerateSummary",
11936
+ "uiActions": [
11937
+ "entity-summary.regenerate"
11938
+ ],
11939
+ "apiActions": [
11940
+ "alia.summarise"
11941
+ ]
11942
+ }
11943
+ ]
11944
+ },
11945
+ {
11946
+ "kind": "pattern",
11947
+ "id": "care-plan-editor-dermatology",
11948
+ "composes": [
11949
+ {
11950
+ "component": "care-plan-header",
11951
+ "as": "planHeader"
11952
+ },
11953
+ {
11954
+ "component": "muscle-scheme",
11955
+ "as": "bodyMap",
11956
+ "entity": "region"
11957
+ },
11958
+ {
11959
+ "component": "face-scheme",
11960
+ "as": "faceMap",
11961
+ "entity": "zone"
11962
+ },
11963
+ {
11964
+ "component": "data-table",
11965
+ "as": "treatmentsGrid",
11966
+ "entity": "treatment"
11967
+ },
11968
+ {
11969
+ "component": "control-room-rail",
11970
+ "as": "toolRail"
11971
+ },
11972
+ {
11973
+ "component": "entity-summary",
11974
+ "as": "planSummary"
11975
+ }
11976
+ ],
11977
+ "workflows": [
11978
+ {
11979
+ "name": "select_plan",
11980
+ "safety": "read",
11981
+ "description": "Open one of the patient's dermatology / skin-lesion care plans from the plan list.",
11982
+ "descriptionKey": "ui.agent.dermatologyCarePlanEditor.workflows.selectPlan",
11983
+ "uiActions": [],
11984
+ "apiActions": [
11985
+ "carePlan.get"
11986
+ ]
11987
+ },
11988
+ {
11989
+ "name": "add_plan",
11990
+ "safety": "write",
11991
+ "description": "Create a new dermatology / skin-lesion care plan for the patient.",
11992
+ "descriptionKey": "ui.agent.dermatologyCarePlanEditor.workflows.addPlan",
11993
+ "uiActions": [],
11994
+ "apiActions": [
11995
+ "carePlan.create"
11996
+ ]
11997
+ },
11998
+ {
11999
+ "name": "inspect_lesion",
12000
+ "safety": "read",
12001
+ "description": "Focus a body or face region on the skin-lesion anchor and read its charted lesions.",
12002
+ "descriptionKey": "ui.agent.dermatologyCarePlanEditor.workflows.inspectLesion",
12003
+ "uiActions": [
12004
+ "muscle-scheme.focus_region",
12005
+ "face-scheme.focus_zone"
12006
+ ],
12007
+ "stateReads": [
12008
+ "muscle-scheme.chart",
12009
+ "face-scheme.chart"
12010
+ ],
12011
+ "apiActions": []
12012
+ },
12013
+ {
12014
+ "name": "mark_treatment_done",
12015
+ "safety": "write",
12016
+ "description": "Mark a planned procedure as executed from its row action in the treatments grid.",
12017
+ "descriptionKey": "ui.agent.dermatologyCarePlanEditor.workflows.markTreatmentDone",
12018
+ "uiActions": [],
12019
+ "stateReads": [
12020
+ "data-table.selection"
12021
+ ],
12022
+ "apiActions": [
12023
+ "carePlanTreatment.update"
12024
+ ]
12025
+ },
12026
+ {
12027
+ "name": "add_treatment",
12028
+ "safety": "write",
12029
+ "description": "Add a planned procedure row to the current care plan.",
12030
+ "descriptionKey": "ui.agent.dermatologyCarePlanEditor.workflows.addTreatment",
12031
+ "uiActions": [],
12032
+ "apiActions": [
12033
+ "carePlanTreatment.create"
12034
+ ]
12035
+ },
12036
+ {
12037
+ "name": "remove_treatment",
12038
+ "safety": "destructive",
12039
+ "description": "Remove the selected procedure(s) from the plan (read data-table.selection for the targets).",
12040
+ "descriptionKey": "ui.agent.dermatologyCarePlanEditor.workflows.removeTreatment",
12041
+ "uiActions": [],
12042
+ "stateReads": [
12043
+ "data-table.selection"
12044
+ ],
12045
+ "apiActions": [
12046
+ "carePlanTreatment.delete"
12047
+ ]
12048
+ },
12049
+ {
12050
+ "name": "save_plan",
12051
+ "safety": "write",
12052
+ "description": "Persist the current edits to the dermatology / skin-lesion care plan.",
12053
+ "descriptionKey": "ui.agent.dermatologyCarePlanEditor.workflows.savePlan",
12054
+ "uiActions": [],
12055
+ "apiActions": [
12056
+ "carePlan.update"
12057
+ ]
12058
+ },
12059
+ {
12060
+ "name": "regenerate_summary",
12061
+ "safety": "write",
12062
+ "description": "Regenerate the AI plan summary in the docked Plan summary tool.",
12063
+ "descriptionKey": "ui.agent.dermatologyCarePlanEditor.workflows.regenerateSummary",
12064
+ "uiActions": [
12065
+ "entity-summary.regenerate"
12066
+ ],
12067
+ "apiActions": [
12068
+ "alia.summarise"
12069
+ ]
12070
+ }
12071
+ ]
12072
+ },
12073
+ {
12074
+ "kind": "pattern",
12075
+ "id": "care-plan-editor-ophthalmology",
12076
+ "composes": [
12077
+ {
12078
+ "component": "care-plan-header",
12079
+ "as": "planHeader"
12080
+ },
12081
+ {
12082
+ "component": "optical-prescription",
12083
+ "as": "prescription",
12084
+ "entity": "eye"
12085
+ },
12086
+ {
12087
+ "component": "data-table",
12088
+ "as": "productsGrid",
12089
+ "entity": "treatment"
12090
+ },
12091
+ {
12092
+ "component": "control-room-rail",
12093
+ "as": "toolRail"
12094
+ },
12095
+ {
12096
+ "component": "entity-summary",
12097
+ "as": "planSummary"
12098
+ }
12099
+ ],
12100
+ "workflows": [
12101
+ {
12102
+ "name": "select_plan",
12103
+ "safety": "read",
12104
+ "description": "Open one of the patient's optical / glasses care plans from the plan list.",
12105
+ "descriptionKey": "ui.agent.ophthalmologyCarePlanEditor.workflows.selectPlan",
12106
+ "uiActions": [],
12107
+ "apiActions": [
12108
+ "carePlan.get"
12109
+ ]
12110
+ },
12111
+ {
12112
+ "name": "add_plan",
12113
+ "safety": "write",
12114
+ "description": "Create a new optical / glasses care plan for the patient.",
12115
+ "descriptionKey": "ui.agent.ophthalmologyCarePlanEditor.workflows.addPlan",
12116
+ "uiActions": [],
12117
+ "apiActions": [
12118
+ "carePlan.create"
12119
+ ]
12120
+ },
12121
+ {
12122
+ "name": "inspect_prescription",
12123
+ "safety": "read",
12124
+ "description": "Focus an eye's row on the glasses-prescription anchor and read its refraction (sphere / cylinder / axis / add) per distance band.",
12125
+ "descriptionKey": "ui.agent.ophthalmologyCarePlanEditor.workflows.inspectPrescription",
12126
+ "uiActions": [
12127
+ "optical-prescription.focus_eye",
12128
+ "optical-prescription.get_row"
12129
+ ],
12130
+ "stateReads": [
12131
+ "optical-prescription.prescription",
12132
+ "optical-prescription.bands"
12133
+ ],
12134
+ "apiActions": []
12135
+ },
12136
+ {
12137
+ "name": "mark_product_done",
12138
+ "safety": "write",
12139
+ "description": "Mark a planned product as dispensed from its row action in the products grid.",
12140
+ "descriptionKey": "ui.agent.ophthalmologyCarePlanEditor.workflows.markProductDone",
12141
+ "uiActions": [],
12142
+ "stateReads": [
12143
+ "data-table.selection"
12144
+ ],
12145
+ "apiActions": [
12146
+ "carePlanTreatment.update"
12147
+ ]
12148
+ },
12149
+ {
12150
+ "name": "add_product",
12151
+ "safety": "write",
12152
+ "description": "Add a product row (lens, frame, coating, …) to the plan.",
12153
+ "descriptionKey": "ui.agent.ophthalmologyCarePlanEditor.workflows.addProduct",
12154
+ "uiActions": [],
12155
+ "apiActions": [
12156
+ "carePlanTreatment.create"
12157
+ ]
12158
+ },
12159
+ {
12160
+ "name": "remove_product",
12161
+ "safety": "destructive",
12162
+ "description": "Remove the selected product(s) from the plan (read data-table.selection for the targets).",
12163
+ "descriptionKey": "ui.agent.ophthalmologyCarePlanEditor.workflows.removeProduct",
12164
+ "uiActions": [],
12165
+ "stateReads": [
12166
+ "data-table.selection"
12167
+ ],
12168
+ "apiActions": [
12169
+ "carePlanTreatment.delete"
12170
+ ]
12171
+ },
12172
+ {
12173
+ "name": "save_plan",
12174
+ "safety": "write",
12175
+ "description": "Persist the current edits to the optical care plan.",
12176
+ "descriptionKey": "ui.agent.ophthalmologyCarePlanEditor.workflows.savePlan",
12177
+ "uiActions": [],
12178
+ "apiActions": [
12179
+ "carePlan.update"
12180
+ ]
12181
+ },
12182
+ {
12183
+ "name": "regenerate_summary",
12184
+ "safety": "write",
12185
+ "description": "Regenerate the AI plan summary in the docked Plan summary tool.",
12186
+ "descriptionKey": "ui.agent.ophthalmologyCarePlanEditor.workflows.regenerateSummary",
12187
+ "uiActions": [
12188
+ "entity-summary.regenerate"
12189
+ ],
12190
+ "apiActions": [
12191
+ "alia.summarise"
12192
+ ]
12193
+ }
12194
+ ]
12195
+ },
12196
+ {
12197
+ "kind": "pattern",
12198
+ "id": "care-plan-editor-orthopedics",
12199
+ "composes": [
12200
+ {
12201
+ "component": "care-plan-header",
12202
+ "as": "planHeader"
12203
+ },
12204
+ {
12205
+ "component": "muscle-scheme",
12206
+ "as": "bodyMap",
12207
+ "entity": "region"
12208
+ },
12209
+ {
12210
+ "component": "data-table",
12211
+ "as": "treatmentsGrid",
12212
+ "entity": "treatment"
12213
+ },
12214
+ {
12215
+ "component": "control-room-rail",
12216
+ "as": "toolRail"
12217
+ },
12218
+ {
12219
+ "component": "entity-summary",
12220
+ "as": "planSummary"
12221
+ }
12222
+ ],
12223
+ "workflows": [
12224
+ {
12225
+ "name": "select_plan",
12226
+ "safety": "read",
12227
+ "description": "Open one of the patient's orthopaedic / musculoskeletal care plans from the plan list.",
12228
+ "descriptionKey": "ui.agent.orthopedicsCarePlanEditor.workflows.selectPlan",
12229
+ "uiActions": [],
12230
+ "apiActions": [
12231
+ "carePlan.get"
12232
+ ]
12233
+ },
12234
+ {
12235
+ "name": "add_plan",
12236
+ "safety": "write",
12237
+ "description": "Create a new orthopaedic / musculoskeletal care plan for the patient.",
12238
+ "descriptionKey": "ui.agent.orthopedicsCarePlanEditor.workflows.addPlan",
12239
+ "uiActions": [],
12240
+ "apiActions": [
12241
+ "carePlan.create"
12242
+ ]
12243
+ },
12244
+ {
12245
+ "name": "inspect_injury",
12246
+ "safety": "read",
12247
+ "description": "Focus a body region on the fracture / joint anchor and read its charted injury sites.",
12248
+ "descriptionKey": "ui.agent.orthopedicsCarePlanEditor.workflows.inspectInjury",
12249
+ "uiActions": [
12250
+ "muscle-scheme.focus_region"
12251
+ ],
12252
+ "stateReads": [
12253
+ "muscle-scheme.chart"
12254
+ ],
12255
+ "apiActions": []
12256
+ },
12257
+ {
12258
+ "name": "mark_treatment_done",
12259
+ "safety": "write",
12260
+ "description": "Mark a planned procedure as executed from its row action in the treatments grid.",
12261
+ "descriptionKey": "ui.agent.orthopedicsCarePlanEditor.workflows.markTreatmentDone",
12262
+ "uiActions": [],
12263
+ "stateReads": [
12264
+ "data-table.selection"
12265
+ ],
12266
+ "apiActions": [
12267
+ "carePlanTreatment.update"
12268
+ ]
12269
+ },
12270
+ {
12271
+ "name": "add_treatment",
12272
+ "safety": "write",
12273
+ "description": "Add a planned procedure row to the current care plan.",
12274
+ "descriptionKey": "ui.agent.orthopedicsCarePlanEditor.workflows.addTreatment",
12275
+ "uiActions": [],
12276
+ "apiActions": [
12277
+ "carePlanTreatment.create"
12278
+ ]
12279
+ },
12280
+ {
12281
+ "name": "remove_treatment",
12282
+ "safety": "destructive",
12283
+ "description": "Remove the selected procedure(s) from the plan (read data-table.selection for the targets).",
12284
+ "descriptionKey": "ui.agent.orthopedicsCarePlanEditor.workflows.removeTreatment",
12285
+ "uiActions": [],
12286
+ "stateReads": [
12287
+ "data-table.selection"
12288
+ ],
12289
+ "apiActions": [
12290
+ "carePlanTreatment.delete"
12291
+ ]
12292
+ },
12293
+ {
12294
+ "name": "save_plan",
12295
+ "safety": "write",
12296
+ "description": "Persist the current edits to the orthopaedic / musculoskeletal care plan.",
12297
+ "descriptionKey": "ui.agent.orthopedicsCarePlanEditor.workflows.savePlan",
12298
+ "uiActions": [],
12299
+ "apiActions": [
12300
+ "carePlan.update"
12301
+ ]
12302
+ },
12303
+ {
12304
+ "name": "regenerate_summary",
12305
+ "safety": "write",
12306
+ "description": "Regenerate the AI plan summary in the docked Plan summary tool.",
12307
+ "descriptionKey": "ui.agent.orthopedicsCarePlanEditor.workflows.regenerateSummary",
12308
+ "uiActions": [
12309
+ "entity-summary.regenerate"
12310
+ ],
12311
+ "apiActions": [
12312
+ "alia.summarise"
12313
+ ]
12314
+ }
12315
+ ]
12316
+ },
12317
+ {
12318
+ "kind": "pattern",
12319
+ "id": "care-plan-editor-physio",
12320
+ "composes": [
12321
+ {
12322
+ "component": "care-plan-header",
12323
+ "as": "planHeader"
12324
+ },
12325
+ {
12326
+ "component": "data-table",
12327
+ "as": "treatmentsGrid",
12328
+ "entity": "treatment"
12329
+ },
12330
+ {
12331
+ "component": "control-room-rail",
12332
+ "as": "toolRail"
12333
+ },
12334
+ {
12335
+ "component": "notes-panel",
12336
+ "as": "planNotes",
12337
+ "entity": "note"
12338
+ },
12339
+ {
12340
+ "component": "tasks-panel",
12341
+ "as": "planTasks",
12342
+ "entity": "task"
12343
+ },
12344
+ {
12345
+ "component": "entity-summary",
12346
+ "as": "planSummary"
12347
+ }
12348
+ ],
12349
+ "workflows": [
12350
+ {
12351
+ "name": "select_plan",
12352
+ "safety": "read",
12353
+ "description": "Open one of the patient's physiotherapy care plans from the plan list.",
12354
+ "descriptionKey": "ui.agent.physioCarePlanEditor.workflows.selectPlan",
12355
+ "uiActions": [],
12356
+ "apiActions": [
12357
+ "carePlan.get"
12358
+ ]
12359
+ },
12360
+ {
12361
+ "name": "add_plan",
12362
+ "safety": "write",
12363
+ "description": "Create a new physiotherapy care plan for the patient.",
12364
+ "descriptionKey": "ui.agent.physioCarePlanEditor.workflows.addPlan",
12365
+ "uiActions": [],
12366
+ "apiActions": [
12367
+ "carePlan.create"
12368
+ ]
12369
+ },
12370
+ {
12371
+ "name": "mark_session_done",
12372
+ "safety": "write",
12373
+ "description": "Mark a planned session as executed from its row action in the sessions grid.",
12374
+ "descriptionKey": "ui.agent.physioCarePlanEditor.workflows.markSessionDone",
12375
+ "uiActions": [],
12376
+ "stateReads": [
12377
+ "data-table.selection"
12378
+ ],
12379
+ "apiActions": [
12380
+ "carePlanTreatment.update"
12381
+ ]
12382
+ },
12383
+ {
12384
+ "name": "add_session",
12385
+ "safety": "write",
12386
+ "description": "Add a planned session row to the current care plan.",
12387
+ "descriptionKey": "ui.agent.physioCarePlanEditor.workflows.addSession",
12388
+ "uiActions": [],
12389
+ "apiActions": [
12390
+ "carePlanTreatment.create"
12391
+ ]
12392
+ },
12393
+ {
12394
+ "name": "remove_session",
12395
+ "safety": "destructive",
12396
+ "description": "Remove the selected session(s) from the plan (read data-table.selection for the targets).",
12397
+ "descriptionKey": "ui.agent.physioCarePlanEditor.workflows.removeSession",
12398
+ "uiActions": [],
12399
+ "stateReads": [
12400
+ "data-table.selection"
12401
+ ],
12402
+ "apiActions": [
12403
+ "carePlanTreatment.delete"
12404
+ ]
12405
+ },
12406
+ {
12407
+ "name": "save_plan",
12408
+ "safety": "write",
12409
+ "description": "Persist the current edits to the physiotherapy care plan.",
12410
+ "descriptionKey": "ui.agent.physioCarePlanEditor.workflows.savePlan",
12411
+ "uiActions": [],
12412
+ "apiActions": [
12413
+ "carePlan.update"
12414
+ ]
12415
+ },
12416
+ {
12417
+ "name": "add_plan_note",
12418
+ "safety": "phi",
12419
+ "description": "Add a note to the plan via the docked Notes tool. A clinical note requires the clinical-note permission.",
12420
+ "descriptionKey": "ui.agent.physioCarePlanEditor.workflows.addPlanNote",
12421
+ "uiActions": [
12422
+ "notes-panel.add_note"
12423
+ ],
12424
+ "apiActions": [
12425
+ "note.create"
12426
+ ]
12427
+ },
12428
+ {
12429
+ "name": "triage_plan_tasks",
12430
+ "safety": "write",
12431
+ "description": "Open or complete a follow-up task from the docked Tasks tool.",
12432
+ "descriptionKey": "ui.agent.physioCarePlanEditor.workflows.triagePlanTasks",
12433
+ "uiActions": [
12434
+ "tasks-panel.select_item",
12435
+ "tasks-panel.toggle_done"
12436
+ ],
12437
+ "stateReads": [
12438
+ "tasks-panel.items"
12439
+ ],
12440
+ "apiActions": [
12441
+ "task.update"
12442
+ ]
12443
+ },
12444
+ {
12445
+ "name": "regenerate_summary",
12446
+ "safety": "write",
12447
+ "description": "Regenerate the AI plan summary in the docked Plan summary tool.",
12448
+ "descriptionKey": "ui.agent.physioCarePlanEditor.workflows.regenerateSummary",
12449
+ "uiActions": [
12450
+ "entity-summary.regenerate"
12451
+ ],
12452
+ "apiActions": [
12453
+ "alia.summarise"
12454
+ ]
12455
+ }
12456
+ ]
12457
+ },
11302
12458
  {
11303
12459
  "kind": "pattern",
11304
12460
  "id": "care-plans",