@mastra/playground-ui 65.0.0-alpha.9 → 65.0.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.
- package/dist/{ask-user-card-DnvW7jXS.js → ask-user-card-B9q_GFTt.js} +2 -2
- package/dist/{ask-user-card-DnvW7jXS.js.map → ask-user-card-B9q_GFTt.js.map} +1 -1
- package/dist/{ask-user-card-DiFQcUzM.cjs → ask-user-card-C-N5rpYG.cjs} +2 -2
- package/dist/{ask-user-card-DiFQcUzM.cjs.map → ask-user-card-C-N5rpYG.cjs.map} +1 -1
- package/dist/components/Button.cjs.js +1 -1
- package/dist/components/Button.es.js +1 -1
- package/dist/components/CommandPalette.cjs.js +1 -1
- package/dist/components/CommandPalette.es.js +1 -1
- package/dist/components/Comment.cjs.js +1 -1
- package/dist/components/Comment.es.js +1 -1
- package/dist/components/DataCodeSection.cjs.js +1 -1
- package/dist/components/DataCodeSection.es.js +1 -1
- package/dist/components/DataList.cjs.js +15 -17
- package/dist/components/DataList.cjs.js.map +1 -1
- package/dist/components/DataList.es.js +4 -5
- package/dist/components/DataList.es.js.map +1 -1
- package/dist/components/DataPanel.cjs.js +1 -1
- package/dist/components/DataPanel.es.js +1 -1
- package/dist/components/DateTimePicker.cjs.js +1 -1
- package/dist/components/DateTimePicker.es.js +1 -1
- package/dist/components/DateTimeRangePicker.cjs.js +1 -1
- package/dist/components/DateTimeRangePicker.es.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.cjs.js +2 -2
- package/dist/components/EnvironmentVariablesEditor.es.js +2 -2
- package/dist/components/Field.cjs.js +1 -1
- package/dist/components/Field.es.js +1 -1
- package/dist/components/FilterBar.cjs.js +2 -2
- package/dist/components/FilterBar.es.js +2 -2
- package/dist/components/JSONSchemaForm.cjs.js +1 -1
- package/dist/components/JSONSchemaForm.es.js +1 -1
- package/dist/components/Kbd.cjs.js +1 -1
- package/dist/components/Kbd.es.js +1 -1
- package/dist/components/ListSearch.cjs.js +1 -1
- package/dist/components/ListSearch.es.js +1 -1
- package/dist/components/LogsDataList.cjs.js +5 -2
- package/dist/components/LogsDataList.cjs.js.map +1 -1
- package/dist/components/LogsDataList.es.js +5 -2
- package/dist/components/LogsDataList.es.js.map +1 -1
- package/dist/components/PropertyFilter.cjs.js +1 -1
- package/dist/components/PropertyFilter.es.js +1 -1
- package/dist/components/SavedViews.cjs.js +1 -1
- package/dist/components/SavedViews.es.js +1 -1
- package/dist/components/SearchInput.cjs.js +1 -1
- package/dist/components/SearchInput.es.js +1 -1
- package/dist/components/Section.cjs.js +1 -1
- package/dist/components/Section.es.js +1 -1
- package/dist/components/SideDialog.cjs.js +225 -2
- package/dist/components/SideDialog.cjs.js.map +1 -1
- package/dist/components/SideDialog.es.js +210 -1
- package/dist/components/SideDialog.es.js.map +1 -1
- package/dist/components/Sidebar.cjs.js +63 -59
- package/dist/components/Sidebar.cjs.js.map +1 -1
- package/dist/components/Sidebar.es.js +64 -61
- package/dist/components/Sidebar.es.js.map +1 -1
- package/dist/components/ai/activity.cjs.js +1 -1
- package/dist/components/ai/activity.es.js +1 -1
- package/dist/components/ai/ask-user.cjs.js +1 -1
- package/dist/components/ai/ask-user.es.js +1 -1
- package/dist/{data-code-section-BjyHoHEB.cjs → data-code-section-BsvdKW08.cjs} +2 -2
- package/dist/{data-code-section-BjyHoHEB.cjs.map → data-code-section-BsvdKW08.cjs.map} +1 -1
- package/dist/{data-code-section-BWzfg-1n.js → data-code-section-y1BMLr3c.js} +2 -2
- package/dist/{data-code-section-BWzfg-1n.js.map → data-code-section-y1BMLr3c.js.map} +1 -1
- package/dist/{data-list-top-DJh08vFA.cjs → data-list-4t6Ueon8.cjs} +365 -16
- package/dist/data-list-4t6Ueon8.cjs.map +1 -0
- package/dist/{data-list-top-Cu4C2Z07.js → data-list-BQMBFAyK.js} +357 -7
- package/dist/data-list-BQMBFAyK.js.map +1 -0
- package/dist/{data-list-skeleton-sdcaabdX.cjs → data-list-skeleton-CVXZYY0k.cjs} +6 -6
- package/dist/{data-list-skeleton-sdcaabdX.cjs.map → data-list-skeleton-CVXZYY0k.cjs.map} +1 -1
- package/dist/{data-list-skeleton-CiilOVAl.js → data-list-skeleton-D54r1ycU.js} +2 -2
- package/dist/{data-list-skeleton-CiilOVAl.js.map → data-list-skeleton-D54r1ycU.js.map} +1 -1
- package/dist/{data-panel-CUqcB4Vn.js → data-panel-DSgidnnv.js} +2 -2
- package/dist/{data-panel-CUqcB4Vn.js.map → data-panel-DSgidnnv.js.map} +1 -1
- package/dist/{data-panel-CGRPVnEe.cjs → data-panel-xqrai98b.cjs} +2 -2
- package/dist/{data-panel-CGRPVnEe.cjs.map → data-panel-xqrai98b.cjs.map} +1 -1
- package/dist/{date-time-range-picker-BB6ivHR-.js → date-time-range-picker-BnYWCqei.js} +2 -2
- package/dist/{date-time-range-picker-BB6ivHR-.js.map → date-time-range-picker-BnYWCqei.js.map} +1 -1
- package/dist/{date-time-range-picker-ExPgeHV_.cjs → date-time-range-picker-_2RJBOUn.cjs} +2 -2
- package/dist/{date-time-range-picker-ExPgeHV_.cjs.map → date-time-range-picker-_2RJBOUn.cjs.map} +1 -1
- package/dist/domains/capabilities.cjs.js +4 -0
- package/dist/domains/capabilities.cjs.js.map +1 -1
- package/dist/domains/capabilities.es.js +1 -1
- package/dist/domains/chat/messages/dataset-save-action.cjs.js +1 -1
- package/dist/domains/chat/messages/dataset-save-action.es.js +1 -1
- package/dist/domains/chat/messages/notification-signal-notice.cjs.js +23 -3
- package/dist/domains/chat/messages/notification-signal-notice.cjs.js.map +1 -1
- package/dist/domains/chat/messages/notification-signal-notice.es.js +24 -6
- package/dist/domains/chat/messages/notification-signal-notice.es.js.map +1 -1
- package/dist/domains/chat/messages/signal-data.cjs.js +12 -0
- package/dist/domains/chat/messages/signal-data.cjs.js.map +1 -1
- package/dist/domains/chat/messages/signal-data.es.js +12 -1
- package/dist/domains/chat/messages/signal-data.es.js.map +1 -1
- package/dist/domains/chat/tools/badges/ask-user-badge.cjs.js +1 -1
- package/dist/domains/chat/tools/badges/ask-user-badge.es.js +1 -1
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js +3 -0
- package/dist/domains/chat/tools/badges/workflow-badge.cjs.js.map +1 -1
- package/dist/domains/chat/tools/badges/workflow-badge.es.js +3 -0
- package/dist/domains/chat/tools/badges/workflow-badge.es.js.map +1 -1
- package/dist/domains/chat.cjs.js +1 -0
- package/dist/domains/chat.cjs.js.map +1 -1
- package/dist/domains/chat.es.js +1 -1
- package/dist/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.cjs.js +24 -16
- package/dist/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.cjs.js.map +1 -1
- package/dist/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.es.js +24 -16
- package/dist/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.es.js.map +1 -1
- package/dist/domains/datasets/components/add-dataset-item-dialog/build-add-item-payload.cjs.js +7 -8
- package/dist/domains/datasets/components/add-dataset-item-dialog/build-add-item-payload.cjs.js.map +1 -1
- package/dist/domains/datasets/components/add-dataset-item-dialog/build-add-item-payload.es.js +7 -8
- package/dist/domains/datasets/components/add-dataset-item-dialog/build-add-item-payload.es.js.map +1 -1
- package/dist/domains/datasets/components/add-dataset-item-dialog/collapsible-settings-row.cjs.js +1 -1
- package/dist/domains/datasets/components/add-dataset-item-dialog/collapsible-settings-row.es.js +1 -1
- package/dist/domains/datasets/components/add-dataset-item-dialog/dataset-field-errors.cjs.js +1 -1
- package/dist/domains/datasets/components/add-dataset-item-dialog/dataset-field-errors.es.js +1 -1
- package/dist/domains/datasets/components/add-dataset-item-dialog/dataset-picker.cjs.js +1 -1
- package/dist/domains/datasets/components/add-dataset-item-dialog/dataset-picker.es.js +1 -1
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.cjs.js +2 -2
- package/dist/domains/datasets/components/save-as-dataset-item-dialog.es.js +2 -2
- package/dist/domains/logs/components/log-data-panel.cjs.js +1 -1
- package/dist/domains/logs/components/log-data-panel.es.js +1 -1
- package/dist/domains/logs/components/logs-list-view.cjs.js +3 -2
- package/dist/domains/logs/components/logs-list-view.cjs.js.map +1 -1
- package/dist/domains/logs/components/logs-list-view.es.js +3 -2
- package/dist/domains/logs/components/logs-list-view.es.js.map +1 -1
- package/dist/domains/memory/components/observation-detail-view.cjs.js +1 -1
- package/dist/domains/memory/components/observation-detail-view.es.js +1 -1
- package/dist/domains/metrics/components/date-range-selector.cjs.js +1 -1
- package/dist/domains/metrics/components/date-range-selector.es.js +1 -1
- package/dist/domains/observability/components/trace-as-item-dialog.cjs.js +14 -2
- package/dist/domains/observability/components/trace-as-item-dialog.cjs.js.map +1 -1
- package/dist/domains/observability/components/trace-as-item-dialog.es.js +14 -2
- package/dist/domains/observability/components/trace-as-item-dialog.es.js.map +1 -1
- package/dist/domains/scores/components/score-data-panel.cjs.js +1 -1
- package/dist/domains/scores/components/score-data-panel.es.js +1 -1
- package/dist/domains/scores/components/trace-scores-tab.cjs.js +2 -1
- package/dist/domains/scores/components/trace-scores-tab.cjs.js.map +1 -1
- package/dist/domains/scores/components/trace-scores-tab.es.js +2 -1
- package/dist/domains/scores/components/trace-scores-tab.es.js.map +1 -1
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +1 -1
- package/dist/domains/traces/components/span-data-panel-view.es.js +1 -1
- package/dist/domains/traces/components/span-summary-description.cjs.js +1 -1
- package/dist/domains/traces/components/span-summary-description.es.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.cjs.js +1 -1
- package/dist/domains/traces/components/thread-trace/thread-trace-details.es.js +1 -1
- package/dist/domains/traces/components/trace-columns-menu.cjs.js +1 -1
- package/dist/domains/traces/components/trace-columns-menu.es.js +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js +3 -8
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel-view.es.js +4 -9
- package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel.cjs.js +2 -0
- package/dist/domains/traces/components/trace-data-panel.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-data-panel.es.js +2 -0
- package/dist/domains/traces/components/trace-data-panel.es.js.map +1 -1
- package/dist/domains/traces/components/trace-error-cell.cjs.js +3 -1
- package/dist/domains/traces/components/trace-error-cell.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-error-cell.es.js +3 -1
- package/dist/domains/traces/components/trace-error-cell.es.js.map +1 -1
- package/dist/domains/traces/components/trace-id-button.cjs.js +1 -1
- package/dist/domains/traces/components/trace-id-button.es.js +1 -1
- package/dist/domains/traces/components/trace-span-panel.cjs.js +0 -2
- package/dist/domains/traces/components/trace-span-panel.cjs.js.map +1 -1
- package/dist/domains/traces/components/trace-span-panel.es.js +0 -2
- package/dist/domains/traces/components/trace-span-panel.es.js.map +1 -1
- package/dist/domains/traces/components/trace-summary-description.cjs.js +1 -1
- package/dist/domains/traces/components/trace-summary-description.es.js +1 -1
- package/dist/domains/traces/components/trace-thread-panel.cjs.js +1 -1
- package/dist/domains/traces/components/trace-thread-panel.es.js +1 -1
- package/dist/domains/traces/components/trace-time-range-chip.cjs.js +2 -2
- package/dist/domains/traces/components/trace-time-range-chip.es.js +2 -2
- package/dist/domains/traces/components/traces-explorer/traces-explorer-auto-refresh.cjs.js +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-auto-refresh.es.js +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-context.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-context.es.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.cjs.js +2 -2
- package/dist/domains/traces/components/traces-explorer/traces-explorer-filter-bar.es.js +2 -2
- package/dist/domains/traces/components/traces-explorer/traces-explorer-list-provider.cjs.js +2 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-list-provider.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-list-provider.es.js +2 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-list-provider.es.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.cjs.js +4 -15
- package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.es.js +4 -15
- package/dist/domains/traces/components/traces-explorer/traces-explorer-panel.es.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-root.cjs.js +3 -0
- package/dist/domains/traces/components/traces-explorer/traces-explorer-root.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-root.es.js +4 -1
- package/dist/domains/traces/components/traces-explorer/traces-explorer-root.es.js.map +1 -1
- package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.cjs.js +1 -1
- package/dist/domains/traces/components/traces-explorer/use-traces-filter-bar.es.js +1 -1
- package/dist/domains/traces/components/traces-list-view.cjs.js +4 -5
- package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-list-view.es.js +3 -4
- package/dist/domains/traces/components/traces-list-view.es.js.map +1 -1
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js +4 -1
- package/dist/domains/traces/components/traces-page-skeleton.cjs.js.map +1 -1
- package/dist/domains/traces/components/traces-page-skeleton.es.js +4 -1
- package/dist/domains/traces/components/traces-page-skeleton.es.js.map +1 -1
- package/dist/domains/traces/hooks/use-traces-list-source.cjs.js +36 -9
- package/dist/domains/traces/hooks/use-traces-list-source.cjs.js.map +1 -1
- package/dist/domains/traces/hooks/use-traces-list-source.es.js +37 -12
- package/dist/domains/traces/hooks/use-traces-list-source.es.js.map +1 -1
- package/dist/domains/workflows/components/workflows-list/workflows-list.cjs.js +2 -2
- package/dist/domains/workflows/components/workflows-list/workflows-list.es.js +2 -2
- package/dist/domains/workflows/workflow/input/workflow-json-input.cjs.js +1 -1
- package/dist/domains/workflows/workflow/input/workflow-json-input.es.js +1 -1
- package/dist/domains/workflows/workflow/input/workflow-processor-input.cjs.js +1 -1
- package/dist/domains/workflows/workflow/input/workflow-processor-input.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-debug-mode-switch.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-debug-mode-switch.es.js +1 -1
- package/dist/domains/workflows/workflow/workflow-time-travel-form.cjs.js +1 -1
- package/dist/domains/workflows/workflow/workflow-time-travel-form.es.js +1 -1
- package/dist/domains/workspace/components/workspace-add-skill-dialog.cjs.js +2 -2
- package/dist/domains/workspace/components/workspace-add-skill-dialog.es.js +2 -2
- package/dist/ee/signals/components/entity-index-list.cjs.js +3 -1
- package/dist/ee/signals/components/entity-index-list.cjs.js.map +1 -1
- package/dist/ee/signals/components/entity-index-list.es.js +3 -1
- package/dist/ee/signals/components/entity-index-list.es.js.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js +4 -2
- package/dist/ee/signals/components/trace-intelligence-entity-index.cjs.js.map +1 -1
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js +4 -2
- package/dist/ee/signals/components/trace-intelligence-entity-index.es.js.map +1 -1
- package/dist/ee/signals/settings/signal-definition-form-dialog.cjs.js +1 -1
- package/dist/ee/signals/settings/signal-definition-form-dialog.es.js +1 -1
- package/dist/ee/signals/trace-intelligence-explainer.cjs.js +1 -0
- package/dist/ee/signals/trace-intelligence-explainer.cjs.js.map +1 -1
- package/dist/ee/signals/trace-intelligence-explainer.es.js +1 -0
- package/dist/ee/signals/trace-intelligence-explainer.es.js.map +1 -1
- package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +2 -2
- package/dist/ee/topics/components/topic-trace-summary-list.es.js +2 -2
- package/dist/{field-BCU5ZtWV.cjs → field-CZ5fldpM.cjs} +2 -1
- package/dist/{field-BCU5ZtWV.cjs.map → field-CZ5fldpM.cjs.map} +1 -1
- package/dist/{field-Dl1zeXTv.js → field-CfA5-ixH.js} +2 -1
- package/dist/{field-Dl1zeXTv.js.map → field-CfA5-ixH.js.map} +1 -1
- package/dist/{filter-bar-C6NdZctn.cjs → filter-bar-CjBb01b6.cjs} +3 -3
- package/dist/{filter-bar-C6NdZctn.cjs.map → filter-bar-CjBb01b6.cjs.map} +1 -1
- package/dist/{filter-bar-chip-DgvuQv6c.cjs → filter-bar-chip-C_64m7nX.cjs} +2 -2
- package/dist/{filter-bar-chip-DgvuQv6c.cjs.map → filter-bar-chip-C_64m7nX.cjs.map} +1 -1
- package/dist/{filter-bar-chip-DM73lTpx.js → filter-bar-chip-D2kKMSRA.js} +2 -2
- package/dist/{filter-bar-chip-DM73lTpx.js.map → filter-bar-chip-D2kKMSRA.js.map} +1 -1
- package/dist/{filter-bar-DW0fD4bu.js → filter-bar-pXSJt2ye.js} +3 -3
- package/dist/{filter-bar-DW0fD4bu.js.map → filter-bar-pXSJt2ye.js.map} +1 -1
- package/dist/{kbd-Xgv5HKEi.cjs → kbd-B2zbS_A6.cjs} +2 -2
- package/dist/{kbd-Xgv5HKEi.cjs.map → kbd-B2zbS_A6.cjs.map} +1 -1
- package/dist/{kbd-7Xx2pm9f.js → kbd-CYtMrOov.js} +2 -2
- package/dist/{kbd-7Xx2pm9f.js.map → kbd-CYtMrOov.js.map} +1 -1
- package/dist/layout/tabbed-container.cjs.js +2 -2
- package/dist/layout/tabbed-container.es.js +2 -2
- package/dist/lib/form/components/boolean-field.cjs.js +1 -1
- package/dist/lib/form/components/boolean-field.es.js +1 -1
- package/dist/lib/form/components/field-wrapper.cjs.js +1 -1
- package/dist/lib/form/components/field-wrapper.es.js +1 -1
- package/dist/{list-search-ByJdIxIh.js → list-search-8jVOq9LK.js} +2 -2
- package/dist/{list-search-ByJdIxIh.js.map → list-search-8jVOq9LK.js.map} +1 -1
- package/dist/{list-search-DNJVeHmK.cjs → list-search-C7ckmZHa.cjs} +2 -2
- package/dist/{list-search-DNJVeHmK.cjs.map → list-search-C7ckmZHa.cjs.map} +1 -1
- package/dist/{logs-data-list-DCj8Pj77.cjs → logs-data-list-C4Z4rw62.cjs} +21 -22
- package/dist/{logs-data-list-DCj8Pj77.cjs.map → logs-data-list-C4Z4rw62.cjs.map} +1 -1
- package/dist/{logs-data-list-VEEruqHO.js → logs-data-list-CL3iq_6r.js} +2 -3
- package/dist/{logs-data-list-VEEruqHO.js.map → logs-data-list-CL3iq_6r.js.map} +1 -1
- package/dist/new/settings.cjs.js +1 -1
- package/dist/new/settings.es.js +1 -1
- package/dist/{notification-activity-BWXHmlTn.js → notification-activity-BRW1Xlj1.js} +9 -5
- package/dist/notification-activity-BRW1Xlj1.js.map +1 -0
- package/dist/{notification-activity-BSNuqJDd.cjs → notification-activity-DAZOALWI.cjs} +9 -5
- package/dist/notification-activity-DAZOALWI.cjs.map +1 -0
- package/dist/resize/collapsible-panel.cjs.js +1 -1
- package/dist/resize/collapsible-panel.es.js +1 -1
- package/dist/{search-input-CMNy0JWd.cjs → search-input-CGNENJDh.cjs} +2 -2
- package/dist/{search-input-CMNy0JWd.cjs.map → search-input-CGNENJDh.cjs.map} +1 -1
- package/dist/{search-input-C9qFBzn6.js → search-input-cIYk0pl3.js} +2 -2
- package/dist/{search-input-C9qFBzn6.js.map → search-input-cIYk0pl3.js.map} +1 -1
- package/dist/{section-skBYREaR.cjs → section-BikCyHdf.cjs} +2 -2
- package/dist/{section-skBYREaR.cjs.map → section-BikCyHdf.cjs.map} +1 -1
- package/dist/{section-eRs4NnCC.js → section-C71zDLKM.js} +2 -2
- package/dist/{section-eRs4NnCC.js.map → section-C71zDLKM.js.map} +1 -1
- package/dist/{settings-row-Ds-PVocx.cjs → settings-row-C9lT2BJS.cjs} +2 -2
- package/dist/{settings-row-Ds-PVocx.cjs.map → settings-row-C9lT2BJS.cjs.map} +1 -1
- package/dist/{settings-row-BHtjEfPr.js → settings-row-CRpU1an-.js} +2 -2
- package/dist/{settings-row-BHtjEfPr.js.map → settings-row-CRpU1an-.js.map} +1 -1
- package/dist/src/domains/capabilities/index.d.ts +1 -1
- package/dist/src/domains/chat/messages/notification-signal-notice.d.ts +2 -0
- package/dist/src/domains/chat/messages/signal-data.d.ts +9 -0
- package/dist/src/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.d.ts +2 -2
- package/dist/src/domains/datasets/components/add-dataset-item-dialog/build-add-item-payload.d.ts +2 -0
- package/dist/src/domains/traces/components/trace-data-panel-view.d.ts +1 -5
- package/dist/src/domains/traces/components/trace-span-panel.d.ts +1 -2
- package/dist/src/domains/traces/components/traces-explorer/traces-explorer-context.d.ts +2 -0
- package/dist/src/domains/traces/components/traces-explorer/traces-explorer-panel.d.ts +3 -1
- package/dist/src/domains/traces/hooks/use-traces-list-source.d.ts +7 -1
- package/dist/src/ds/components/DataList/data-list-root.d.ts +2 -0
- package/dist/src/ds/components/Sidebar/header/sidebar-badge.d.ts +7 -0
- package/dist/src/ds/components/Sidebar/header/sidebar-button-hint.d.ts +7 -0
- package/dist/src/ds/components/Sidebar/header/sidebar-search-trigger.d.ts +14 -3
- package/dist/src/ds/components/Sidebar/index.d.ts +1 -0
- package/dist/src/ds/components/Sidebar/root/sidebar-trigger.d.ts +2 -2
- package/dist/src/ds/components/Sidebar/sidebar.d.ts +5 -1
- package/dist/src/ds/components/ai/activity/presets/notification-activity.d.ts +5 -1
- package/dist/style.css +29 -13
- package/dist/{traces-data-list-CF_LFvnf.cjs → traces-data-list-BOHhsgDI.cjs} +18 -20
- package/dist/{traces-data-list-CF_LFvnf.cjs.map → traces-data-list-BOHhsgDI.cjs.map} +1 -1
- package/dist/{traces-data-list-DgmSuEKb.js → traces-data-list-CP6knkOn.js} +2 -4
- package/dist/{traces-data-list-DgmSuEKb.js.map → traces-data-list-CP6knkOn.js.map} +1 -1
- package/package.json +11 -11
- package/dist/data-list-CD_lls8O.js +0 -138
- package/dist/data-list-CD_lls8O.js.map +0 -1
- package/dist/data-list-CGD9hzcp.cjs +0 -142
- package/dist/data-list-CGD9hzcp.cjs.map +0 -1
- package/dist/data-list-spacer-DpXJrZe1.js +0 -209
- package/dist/data-list-spacer-DpXJrZe1.js.map +0 -1
- package/dist/data-list-spacer-Dpoj55mv.cjs +0 -218
- package/dist/data-list-spacer-Dpoj55mv.cjs.map +0 -1
- package/dist/data-list-top-Cu4C2Z07.js.map +0 -1
- package/dist/data-list-top-DJh08vFA.cjs.map +0 -1
- package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js +0 -205
- package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.cjs.js.map +0 -1
- package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.d.ts +0 -2
- package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.es.js +0 -201
- package/dist/domains/observability/components/add-trace-mocks-to-item-dialog.es.js.map +0 -1
- package/dist/notification-activity-BSNuqJDd.cjs.map +0 -1
- package/dist/notification-activity-BWXHmlTn.js.map +0 -1
- package/dist/side-dialog-B7a4dasE.cjs +0 -231
- package/dist/side-dialog-B7a4dasE.cjs.map +0 -1
- package/dist/side-dialog-DVea8YTO.js +0 -211
- package/dist/side-dialog-DVea8YTO.js.map +0 -1
- package/dist/src/domains/observability/components/add-trace-mocks-to-item-dialog.d.ts +0 -9
package/dist/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-dataset-item-dialog.cjs.js","sources":["../../../../../src/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.tsx"],"sourcesContent":["import type { AddDatasetItemParams } from '@mastra/client-js';\nimport { useDataset, useDatasetMutations, useDatasets } from '@mastra/react/hooks/datasets';\nimport { useState } from 'react';\nimport type { ReactNode } from 'react';\nimport type { CreateDatasetDialogRenderProps } from '../save-as-dataset-item-dialog';\nimport { buildAddItemPayload } from './build-add-item-payload';\nimport type { AddItemDraft, AddItemError, AddItemField } from './build-add-item-payload';\nimport { CollapsibleSettingsRow } from './collapsible-settings-row';\nimport { DatasetFieldErrors } from './dataset-field-errors';\nimport { DatasetPicker } from './dataset-picker';\nimport { parseFieldErrors } from './field-errors';\nimport type { FieldErrors } from './field-errors';\nimport { TrajectoryEditor } from './trajectory-editor';\nimport { toTrajectoryStepRow } from './trajectory-types';\nimport type { TrajectoryExpectation } from './trajectory-types';\nimport { useTargetAgentTools } from './use-target-agent-tools';\nimport { Badge } from '@/ds/components/Badge';\nimport { Button } from '@/ds/components/Button';\nimport { CodeEditor } from '@/ds/components/CodeEditor';\nimport {\n Dialog,\n DialogAction,\n DialogBody,\n DialogCancel,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from '@/ds/components/Dialog';\nimport { Field, FieldDescription, FieldError, FieldLabel } from '@/ds/components/Field';\nimport { Txt } from '@/ds/components/Txt';\nimport { SettingsContainer } from '@/ds/new/settings';\nimport { useLinkComponent } from '@/lib/framework';\nimport { cn } from '@/lib/utils';\nimport { toast } from '@/utils/toast';\n\nexport interface AddDatasetItemDialogProps {\n /** The dataset to add the item to. Without it, the dialog asks which dataset. */\n datasetId?: string;\n open: boolean;\n onOpenChange: (open: boolean) => void;\n onSuccess?: () => void;\n /** Raw JSON prefilled in the input editor. */\n initialInput?: string;\n /** Raw JSON prefilled in the ground truth editor. */\n initialGroundTruth?: string;\n /** Raw JSON array prefilled in the tool mocks editor. */\n initialToolMocks?: string;\n /** Steps prefilled in the trajectory editor; switches the expected trajectory on. */\n initialTrajectory?: TrajectoryExpectation;\n /** Where the item comes from; sent as is. */\n source?: AddDatasetItemParams['source'];\n /** Renders a create-dataset dialog, offered first in the dataset picker. The created dataset gets picked. */\n renderCreateDatasetDialog?: (props: CreateDatasetDialogRenderProps) => ReactNode;\n}\n\ntype InitialValues = Pick<\n AddDatasetItemDialogProps,\n 'initialInput' | 'initialGroundTruth' | 'initialToolMocks' | 'initialTrajectory'\n>;\n\nconst initialDraft = ({\n initialInput,\n initialGroundTruth,\n initialToolMocks,\n initialTrajectory,\n}: InitialValues): AddItemDraft => {\n const steps = initialTrajectory?.steps ?? [];\n return {\n input: initialInput ?? '{}',\n groundTruth: initialGroundTruth ?? '',\n toolMocks: initialToolMocks ?? '',\n requestContextEnabled: false,\n requestContext: '',\n trajectoryEnabled: steps.length > 0,\n ordering: initialTrajectory?.ordering ?? 'relaxed',\n trajectorySteps: steps.map(toTrajectoryStepRow),\n };\n};\n\nconst TOOL_MOCKS_PLACEHOLDER = `[\n { \"toolName\": \"getWeather\", \"args\": { \"city\": \"Paris\" }, \"output\": { \"temp\": 18 } },\n { \"toolName\": \"getForecast\", \"args\": {}, \"output\": { \"days\": 5 }, \"matchArgs\": \"ignore\" }\n]`;\n\n/** The keys of the dataset's request context schema, as a JSON object to fill in. */\nconst requestContextPlaceholder = (schema: unknown) => {\n const properties = typeof schema === 'object' && schema !== null && 'properties' in schema ? schema.properties : {};\n const keys = typeof properties === 'object' && properties !== null ? Object.keys(properties) : [];\n if (keys.length === 0) return '{ \"tenantId\": \"acme\" }';\n return JSON.stringify(Object.fromEntries(keys.map(key => [key, ''])), null, 2);\n};\n\ntype WizardStep = 1 | 2 | 3;\n\n/** Only steps whose fields don't describe themselves carry a description. */\nconst STEPS: Record<WizardStep, { title: string; description?: ReactNode; optional?: boolean }> = {\n 1: { title: 'Input and ground truth' },\n 2: {\n title: 'Tool mocks',\n optional: true,\n description:\n 'Return fixed results instead of running the real tools. When the target calls a tool listed here with the same args, it gets your output back. Leave empty to run tools for real.',\n },\n 3: {\n title: 'Context and trajectory',\n optional: true,\n description:\n 'Pass values to the run, or check the steps the target takes. Leave both off to add the item without them.',\n },\n};\n\nconst GROUND_TRUTH_PLACEHOLDER = '{ \"text\": \"The answer you expect\" }';\n\n/** Copying an editor that holds nothing worth copying is noise. */\nconst hasContent = (value: string) => !['', '{}'].includes(value.trim());\n\nconst STEP_COUNT = Object.keys(STEPS).length;\n\nconst STEP_OF_FIELD: Record<AddItemField, WizardStep> = {\n input: 1,\n groundTruth: 1,\n toolMocks: 2,\n requestContext: 3,\n expectedTrajectory: 3,\n};\n\nconst isAddItemField = (field: string): field is AddItemField => field in STEP_OF_FIELD;\n\nconst stepTransition = 'animate-in fade-in slide-in-from-bottom-2 duration-200 motion-reduce:animate-none';\n\n/**\n * Add an item to a dataset in three steps: the input and its expected answer, tool mocks, then the request\n * context and expected trajectory. Only the first step is required; the others can be left empty.\n */\nexport function AddDatasetItemDialog({ open, onOpenChange, ...props }: AddDatasetItemDialogProps) {\n const { addItem } = useDatasetMutations();\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange} pending={addItem.isPending}>\n <DialogContent size=\"xl\">\n {/* The form unmounts on close, so every open starts fresh from the initial values. */}\n <AddDatasetItemForm {...props} addItem={addItem} onOpenChange={onOpenChange} />\n </DialogContent>\n </Dialog>\n );\n}\n\nfunction WizardHeader({ step }: { step: WizardStep }) {\n const { title, description, optional } = STEPS[step];\n\n return (\n <DialogHeader key={step} className={stepTransition}>\n <div className=\"flex min-w-0 items-center gap-2\">\n <DialogTitle>{title}</DialogTitle>\n {optional && <Badge size=\"sm\">Optional</Badge>}\n </div>\n {description && <DialogDescription>{description}</DialogDescription>}\n </DialogHeader>\n );\n}\n\nfunction StepProgress({ step }: { step: WizardStep }) {\n return (\n <div className=\"mr-auto flex items-center gap-2\">\n <ol className=\"flex gap-1\" aria-label={`Step ${step} of ${STEP_COUNT}`}>\n {Object.keys(STEPS).map((key, index) => (\n <li\n key={key}\n aria-current={index + 1 === step ? 'step' : undefined}\n className={cn('h-1 w-6 rounded-full transition-colors', index < step ? 'bg-success-indicator' : 'bg-fill')}\n />\n ))}\n </ol>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\" aria-hidden=\"true\">\n Step {step} of {STEP_COUNT}\n </Txt>\n </div>\n );\n}\n\ntype AddDatasetItemFormProps = Omit<AddDatasetItemDialogProps, 'open'> & {\n addItem: ReturnType<typeof useDatasetMutations>['addItem'];\n};\n\nfunction AddDatasetItemForm({\n datasetId,\n onOpenChange,\n onSuccess,\n source,\n renderCreateDatasetDialog,\n addItem,\n ...initialValues\n}: AddDatasetItemFormProps) {\n const [step, setStep] = useState<WizardStep>(1);\n const [draft, setDraft] = useState(() => initialDraft(initialValues));\n const [formError, setFormError] = useState<AddItemError>();\n const [apiErrors, setApiErrors] = useState<FieldErrors>();\n const [pickedDatasetId, setPickedDatasetId] = useState('');\n const [isCreateDatasetOpen, setIsCreateDatasetOpen] = useState(false);\n\n const targetDatasetId = datasetId ?? pickedDatasetId;\n const { data: targetDataset } = useDataset({\n datasetId: targetDatasetId,\n queryOptions: { enabled: Boolean(targetDatasetId) },\n });\n const { toolNames } = useTargetAgentTools(targetDatasetId, { enabled: true });\n const { data: datasetList, isLoading: isDatasetsLoading } = useDatasets({ queryOptions: { enabled: !datasetId } });\n const { navigate, paths } = useLinkComponent();\n\n const datasets = datasetList?.datasets ?? [];\n const pickedDataset = datasets.find(dataset => dataset.id === pickedDatasetId);\n // Picking needs the dataset listed: a just-created one is picked before the refetch returns it.\n const hasDataset = datasetId !== undefined || pickedDataset !== undefined;\n\n const update = (patch: (current: AddItemDraft) => Partial<AddItemDraft>) => {\n setDraft(current => ({ ...current, ...patch(current) }));\n setFormError(undefined);\n };\n\n const showError = (error: AddItemError) => {\n setFormError(error);\n setStep(STEP_OF_FIELD[error.field]);\n };\n\n /** Checks what was entered so far, then moves on; the trajectory is checked once reached. */\n const advance = () => {\n const checked = buildAddItemPayload({ ...draft, trajectoryEnabled: false });\n if ('error' in checked) return showError(checked.error);\n setStep(step === 1 ? 2 : 3);\n };\n\n const handleSubmit = async () => {\n const payload = buildAddItemPayload(draft);\n if ('error' in payload) return showError(payload.error);\n\n try {\n const item = await addItem.mutateAsync({\n datasetId: targetDatasetId,\n ...payload.params,\n ...(source ? { source } : {}),\n });\n if (pickedDataset) {\n // Opens the dataset with the new item's drawer; apps without that route return ''.\n const itemHref = paths.datasetItemLink(pickedDataset.id, item.id);\n toast.success(`Added to ${pickedDataset.name}`, {\n action: itemHref ? { label: 'Go to dataset', onClick: () => navigate(itemHref) } : undefined,\n });\n } else {\n toast.success('Item added successfully');\n }\n onOpenChange(false);\n onSuccess?.();\n } catch (error) {\n const fieldErrors = parseFieldErrors(error);\n if (fieldErrors) {\n setApiErrors(fieldErrors);\n if (isAddItemField(fieldErrors.field)) setStep(STEP_OF_FIELD[fieldErrors.field]);\n return;\n }\n toast.error(`Failed to add item: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n };\n\n const errorOf = (field: AddItemField) => (formError?.field === field ? formError.message : undefined);\n const apiErrorsOf = (field: AddItemField) => (apiErrors?.field === field ? apiErrors.errors : []);\n const isInvalid = (field: AddItemField) => Boolean(errorOf(field)) || apiErrorsOf(field).length > 0;\n\n const editJson = (field: 'input' | 'groundTruth' | 'toolMocks' | 'requestContext') => (value: string) => {\n update(() => ({ [field]: value }));\n setApiErrors(undefined);\n };\n\n return (\n <>\n <WizardHeader step={step} />\n\n <DialogBody>\n {/* Every step stays mounted so what was entered survives going back and forth. */}\n <div hidden={step !== 1} className={cn('flex flex-col gap-6', stepTransition)}>\n {datasetId === undefined && (\n <DatasetPicker\n datasets={datasets}\n value={pickedDatasetId}\n onValueChange={setPickedDatasetId}\n loading={isDatasetsLoading || (Boolean(pickedDatasetId) && !pickedDataset)}\n disabled={addItem.isPending}\n onCreateDataset={renderCreateDatasetDialog ? () => setIsCreateDatasetOpen(true) : undefined}\n />\n )}\n\n <div className=\"grid gap-5 sm:grid-cols-2\">\n <Field invalid={isInvalid('input')}>\n <FieldLabel required>Input</FieldLabel>\n <FieldDescription>What the target receives when this item runs.</FieldDescription>\n <CodeEditor\n value={draft.input}\n onChange={editJson('input')}\n aria-label=\"Input JSON\"\n showCopyButton={hasContent(draft.input)}\n showFormatButton={hasContent(draft.input)}\n className=\"min-h-[220px]\"\n />\n <FieldError>{errorOf('input')}</FieldError>\n <DatasetFieldErrors field=\"input\" errors={apiErrorsOf('input')} />\n </Field>\n <Field invalid={isInvalid('groundTruth')}>\n <FieldLabel>Ground truth</FieldLabel>\n <FieldDescription>The expected answer scorers compare against.</FieldDescription>\n <CodeEditor\n value={draft.groundTruth}\n onChange={editJson('groundTruth')}\n aria-label=\"Ground truth JSON\"\n placeholder={GROUND_TRUTH_PLACEHOLDER}\n showCopyButton={hasContent(draft.groundTruth)}\n showFormatButton={hasContent(draft.groundTruth)}\n className=\"min-h-[220px]\"\n />\n <FieldError>{errorOf('groundTruth')}</FieldError>\n <DatasetFieldErrors field=\"groundTruth\" errors={apiErrorsOf('groundTruth')} />\n </Field>\n </div>\n </div>\n\n <div hidden={step !== 2} className={stepTransition}>\n <Field invalid={isInvalid('toolMocks')}>\n <CodeEditor\n value={draft.toolMocks}\n onChange={editJson('toolMocks')}\n aria-label=\"Tool mocks JSON\"\n placeholder={TOOL_MOCKS_PLACEHOLDER}\n showCopyButton={hasContent(draft.toolMocks)}\n showFormatButton={hasContent(draft.toolMocks)}\n className=\"min-h-[220px]\"\n />\n <FieldError>{errorOf('toolMocks')}</FieldError>\n <DatasetFieldErrors field=\"toolMocks\" errors={apiErrorsOf('toolMocks')} />\n </Field>\n </div>\n\n <div hidden={step !== 3} className={stepTransition}>\n <SettingsContainer>\n <CollapsibleSettingsRow\n label=\"Request context\"\n description=\"Values passed to the target when this item runs.\"\n enabled={draft.requestContextEnabled}\n onEnabledChange={requestContextEnabled => update(() => ({ requestContextEnabled }))}\n errorMsg={errorOf('requestContext')}\n >\n <CodeEditor\n value={draft.requestContext}\n onChange={editJson('requestContext')}\n aria-label=\"Request context JSON\"\n placeholder={requestContextPlaceholder(targetDataset?.requestContextSchema)}\n showCopyButton={hasContent(draft.requestContext)}\n showFormatButton={hasContent(draft.requestContext)}\n className=\"min-h-[120px]\"\n />\n </CollapsibleSettingsRow>\n <CollapsibleSettingsRow\n label=\"Expected trajectory\"\n description=\"The steps the target should take to produce its answer.\"\n enabled={draft.trajectoryEnabled}\n onEnabledChange={trajectoryEnabled => update(() => ({ trajectoryEnabled }))}\n errorMsg={errorOf('expectedTrajectory')}\n >\n <TrajectoryEditor\n ordering={draft.ordering}\n onOrderingChange={ordering => update(() => ({ ordering }))}\n steps={draft.trajectorySteps}\n onStepsChange={change => update(current => ({ trajectorySteps: change(current.trajectorySteps) }))}\n toolNames={toolNames}\n />\n </CollapsibleSettingsRow>\n </SettingsContainer>\n </div>\n </DialogBody>\n\n <DialogFooter>\n <StepProgress step={step} />\n {step === 1 ? (\n <DialogCancel>Cancel</DialogCancel>\n ) : (\n <Button\n variant=\"ghost\"\n disabled={addItem.isPending}\n onClick={() => setStep(current => (current - 1) as WizardStep)}\n >\n Back\n </Button>\n )}\n {step < 3 ? (\n <DialogAction disabled={!hasDataset} onConfirm={advance}>\n Next\n </DialogAction>\n ) : (\n <DialogAction onConfirm={() => void handleSubmit()}>Add item</DialogAction>\n )}\n </DialogFooter>\n\n {/* Rendered inside the dialog so the nested dialog stays in its focus scope instead of dismissing it. */}\n {renderCreateDatasetDialog?.({\n open: isCreateDatasetOpen,\n onOpenChange: setIsCreateDatasetOpen,\n onSuccess: setPickedDatasetId,\n })}\n </>\n );\n}\n"],"names":["toTrajectoryStepRow","useDatasetMutations","Dialog","jsx","DialogContent","jsxs","DialogHeader","DialogTitle","Badge","DialogDescription","cn","Txt","useState","useDataset","useTargetAgentTools","useDatasets","useLinkComponent","datasets","buildAddItemPayload","toast","parseFieldErrors","Fragment","DialogBody","DatasetPicker","Field","FieldLabel","FieldDescription","CodeEditor","FieldError","DatasetFieldErrors","SettingsContainer","CollapsibleSettingsRow","TrajectoryEditor","DialogFooter","DialogCancel","Button","DialogAction"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"add-dataset-item-dialog.cjs.js","sources":["../../../../../src/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.tsx"],"sourcesContent":["import type { AddDatasetItemParams } from '@mastra/client-js';\nimport { useDataset, useDatasetMutations, useDatasets } from '@mastra/react/hooks/datasets';\nimport { useState } from 'react';\nimport type { ReactNode } from 'react';\nimport type { CreateDatasetDialogRenderProps } from '../save-as-dataset-item-dialog';\nimport { buildAddItemPayload } from './build-add-item-payload';\nimport type { AddItemDraft, AddItemError, AddItemField } from './build-add-item-payload';\nimport { CollapsibleSettingsRow } from './collapsible-settings-row';\nimport { DatasetFieldErrors } from './dataset-field-errors';\nimport { DatasetPicker } from './dataset-picker';\nimport { parseFieldErrors } from './field-errors';\nimport type { FieldErrors } from './field-errors';\nimport { TrajectoryEditor } from './trajectory-editor';\nimport { toTrajectoryStepRow } from './trajectory-types';\nimport type { TrajectoryExpectation } from './trajectory-types';\nimport { useTargetAgentTools } from './use-target-agent-tools';\nimport { Badge } from '@/ds/components/Badge';\nimport { Button } from '@/ds/components/Button';\nimport { CodeEditor } from '@/ds/components/CodeEditor';\nimport {\n Dialog,\n DialogAction,\n DialogBody,\n DialogCancel,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from '@/ds/components/Dialog';\nimport { Field, FieldDescription, FieldError, FieldLabel } from '@/ds/components/Field';\nimport { Txt } from '@/ds/components/Txt';\nimport { SettingsContainer } from '@/ds/new/settings';\nimport { useLinkComponent } from '@/lib/framework';\nimport { cn } from '@/lib/utils';\nimport { toast } from '@/utils/toast';\n\nexport interface AddDatasetItemDialogProps {\n /** The dataset to add the item to. Without it, the dialog asks which dataset. */\n datasetId?: string;\n open: boolean;\n onOpenChange: (open: boolean) => void;\n onSuccess?: () => void;\n /** JSON or plain text prefilled in the input editor. */\n initialInput?: string;\n /** JSON or plain text prefilled in the ground truth editor. */\n initialGroundTruth?: string;\n /** Raw JSON array prefilled in the tool mocks editor. */\n initialToolMocks?: string;\n /** Steps prefilled in the trajectory editor; switches the expected trajectory on. */\n initialTrajectory?: TrajectoryExpectation;\n /** Where the item comes from; sent as is. */\n source?: AddDatasetItemParams['source'];\n /** Renders a create-dataset dialog, offered first in the dataset picker. The created dataset gets picked. */\n renderCreateDatasetDialog?: (props: CreateDatasetDialogRenderProps) => ReactNode;\n}\n\ntype InitialValues = Pick<\n AddDatasetItemDialogProps,\n 'initialInput' | 'initialGroundTruth' | 'initialToolMocks' | 'initialTrajectory'\n>;\n\nconst initialDraft = ({\n initialInput,\n initialGroundTruth,\n initialToolMocks,\n initialTrajectory,\n}: InitialValues): AddItemDraft => {\n const steps = initialTrajectory?.steps ?? [];\n return {\n input: initialInput ?? '{}',\n groundTruth: initialGroundTruth ?? '',\n toolMocks: initialToolMocks ?? '',\n requestContextEnabled: false,\n requestContext: '',\n trajectoryEnabled: steps.length > 0,\n ordering: initialTrajectory?.ordering ?? 'relaxed',\n trajectorySteps: steps.map(toTrajectoryStepRow),\n };\n};\n\nconst TOOL_MOCKS_PLACEHOLDER = `[\n { \"toolName\": \"getWeather\", \"args\": { \"city\": \"Paris\" }, \"output\": { \"temp\": 18 } },\n { \"toolName\": \"getForecast\", \"args\": {}, \"output\": { \"days\": 5 }, \"matchArgs\": \"ignore\" }\n]`;\n\n/** The keys of the dataset's request context schema, as a JSON object to fill in. */\nconst requestContextPlaceholder = (schema: unknown) => {\n const properties = typeof schema === 'object' && schema !== null && 'properties' in schema ? schema.properties : {};\n const keys = typeof properties === 'object' && properties !== null ? Object.keys(properties) : [];\n if (keys.length === 0) return '{ \"tenantId\": \"acme\" }';\n return JSON.stringify(Object.fromEntries(keys.map(key => [key, ''])), null, 2);\n};\n\ntype WizardStep = 1 | 2 | 3;\n\n/** Only steps whose fields don't describe themselves carry a description. */\nconst STEPS: Record<WizardStep, { title: string; description?: ReactNode; optional?: boolean }> = {\n 1: { title: 'Input and ground truth' },\n 2: {\n title: 'Tool mocks',\n optional: true,\n description:\n 'Return fixed results instead of running the real tools. When the target calls a tool listed here with the same args, it gets your output back. Leave empty to run tools for real.',\n },\n 3: {\n title: 'Context and trajectory',\n optional: true,\n description:\n 'Pass values to the run, or check the steps the target takes. Leave both off to add the item without them.',\n },\n};\n\nconst GROUND_TRUTH_PLACEHOLDER = '{ \"text\": \"The answer you expect\" }';\n\n/** Copying an editor that holds nothing worth copying is noise. */\nconst hasContent = (value: string) => !['', '{}'].includes(value.trim());\n\n/** Only JSON can be formatted; offering it on plain text would only fail. */\nconst isJson = (value: string) => {\n try {\n JSON.parse(value);\n return true;\n } catch {\n return false;\n }\n};\n\nconst STEP_COUNT = Object.keys(STEPS).length;\n\nconst STEP_OF_FIELD: Record<AddItemField, WizardStep> = {\n input: 1,\n groundTruth: 1,\n toolMocks: 2,\n requestContext: 3,\n expectedTrajectory: 3,\n};\n\nconst isAddItemField = (field: string): field is AddItemField => field in STEP_OF_FIELD;\n\nconst stepTransition = 'animate-in fade-in slide-in-from-bottom-2 duration-200 motion-reduce:animate-none';\n\n/**\n * Add an item to a dataset in three steps: the input and its expected answer, tool mocks, then the request\n * context and expected trajectory. Only the first step is required; the others can be left empty.\n */\nexport function AddDatasetItemDialog({ open, onOpenChange, ...props }: AddDatasetItemDialogProps) {\n const { addItem } = useDatasetMutations();\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange} pending={addItem.isPending}>\n <DialogContent size=\"xl\">\n {/* The form unmounts on close, so every open starts fresh from the initial values. */}\n <AddDatasetItemForm {...props} addItem={addItem} onOpenChange={onOpenChange} />\n </DialogContent>\n </Dialog>\n );\n}\n\nfunction WizardHeader({ step }: { step: WizardStep }) {\n const { title, description, optional } = STEPS[step];\n\n return (\n <DialogHeader key={step} className={stepTransition}>\n <div className=\"flex min-w-0 items-center gap-2\">\n <DialogTitle>{title}</DialogTitle>\n {optional && <Badge size=\"sm\">Optional</Badge>}\n </div>\n {description && <DialogDescription>{description}</DialogDescription>}\n </DialogHeader>\n );\n}\n\nfunction StepProgress({ step }: { step: WizardStep }) {\n return (\n <div className=\"mr-auto flex items-center gap-2\">\n <ol className=\"flex gap-1\" aria-label={`Step ${step} of ${STEP_COUNT}`}>\n {Object.keys(STEPS).map((key, index) => (\n <li\n key={key}\n aria-current={index + 1 === step ? 'step' : undefined}\n className={cn('h-1 w-6 rounded-full transition-colors', index < step ? 'bg-success-indicator' : 'bg-fill')}\n />\n ))}\n </ol>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\" aria-hidden=\"true\">\n Step {step} of {STEP_COUNT}\n </Txt>\n </div>\n );\n}\n\ntype AddDatasetItemFormProps = Omit<AddDatasetItemDialogProps, 'open'> & {\n addItem: ReturnType<typeof useDatasetMutations>['addItem'];\n};\n\nfunction AddDatasetItemForm({\n datasetId,\n onOpenChange,\n onSuccess,\n source,\n renderCreateDatasetDialog,\n addItem,\n ...initialValues\n}: AddDatasetItemFormProps) {\n const [step, setStep] = useState<WizardStep>(1);\n const [draft, setDraft] = useState(() => initialDraft(initialValues));\n const [formError, setFormError] = useState<AddItemError>();\n const [apiErrors, setApiErrors] = useState<FieldErrors>();\n const [pickedDatasetId, setPickedDatasetId] = useState('');\n const [isCreateDatasetOpen, setIsCreateDatasetOpen] = useState(false);\n\n const targetDatasetId = datasetId ?? pickedDatasetId;\n const { data: targetDataset } = useDataset({\n datasetId: targetDatasetId,\n queryOptions: { enabled: Boolean(targetDatasetId) },\n });\n const { toolNames } = useTargetAgentTools(targetDatasetId, { enabled: true });\n const { data: datasetList, isLoading: isDatasetsLoading } = useDatasets({ queryOptions: { enabled: !datasetId } });\n const { navigate, paths } = useLinkComponent();\n\n const datasets = datasetList?.datasets ?? [];\n const pickedDataset = datasets.find(dataset => dataset.id === pickedDatasetId);\n // Picking needs the dataset listed: a just-created one is picked before the refetch returns it.\n const hasDataset = datasetId !== undefined || pickedDataset !== undefined;\n\n const update = (patch: (current: AddItemDraft) => Partial<AddItemDraft>) => {\n setDraft(current => ({ ...current, ...patch(current) }));\n setFormError(undefined);\n };\n\n const showError = (error: AddItemError) => {\n setFormError(error);\n setStep(STEP_OF_FIELD[error.field]);\n };\n\n /** Checks what was entered so far, then moves on; the trajectory is checked once reached. */\n const advance = () => {\n const checked = buildAddItemPayload({ ...draft, trajectoryEnabled: false });\n if ('error' in checked) return showError(checked.error);\n setStep(step === 1 ? 2 : 3);\n };\n\n const handleSubmit = async () => {\n const payload = buildAddItemPayload(draft);\n if ('error' in payload) return showError(payload.error);\n\n try {\n const item = await addItem.mutateAsync({\n datasetId: targetDatasetId,\n ...payload.params,\n ...(source ? { source } : {}),\n });\n if (pickedDataset) {\n // Opens the dataset with the new item's drawer; apps without that route return ''.\n const itemHref = paths.datasetItemLink(pickedDataset.id, item.id);\n toast.success(`Added to ${pickedDataset.name}`, {\n action: itemHref ? { label: 'Go to dataset', onClick: () => navigate(itemHref) } : undefined,\n });\n } else {\n toast.success('Item added successfully');\n }\n onOpenChange(false);\n onSuccess?.();\n } catch (error) {\n const fieldErrors = parseFieldErrors(error);\n if (fieldErrors) {\n setApiErrors(fieldErrors);\n if (isAddItemField(fieldErrors.field)) setStep(STEP_OF_FIELD[fieldErrors.field]);\n return;\n }\n toast.error(`Failed to add item: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n };\n\n const errorOf = (field: AddItemField) => (formError?.field === field ? formError.message : undefined);\n const apiErrorsOf = (field: AddItemField) => (apiErrors?.field === field ? apiErrors.errors : []);\n const isInvalid = (field: AddItemField) => Boolean(errorOf(field)) || apiErrorsOf(field).length > 0;\n\n const editField = (field: 'input' | 'groundTruth' | 'toolMocks' | 'requestContext') => (value: string) => {\n update(() => ({ [field]: value }));\n setApiErrors(undefined);\n };\n\n return (\n <>\n <WizardHeader step={step} />\n\n <DialogBody>\n {/* Every step stays mounted so what was entered survives going back and forth. */}\n <div hidden={step !== 1} className={cn('flex flex-col gap-6', stepTransition)}>\n {datasetId === undefined && (\n <DatasetPicker\n datasets={datasets}\n value={pickedDatasetId}\n onValueChange={setPickedDatasetId}\n loading={isDatasetsLoading || (Boolean(pickedDatasetId) && !pickedDataset)}\n disabled={addItem.isPending}\n onCreateDataset={renderCreateDatasetDialog ? () => setIsCreateDatasetOpen(true) : undefined}\n />\n )}\n\n <div className=\"grid items-start gap-5 sm:grid-cols-2\">\n <Field invalid={isInvalid('input')}>\n <FieldLabel required>Input</FieldLabel>\n <FieldDescription>What the target receives when this item runs. JSON or plain text.</FieldDescription>\n <CodeEditor\n value={draft.input}\n onChange={editField('input')}\n aria-label=\"Input\"\n showCopyButton={hasContent(draft.input)}\n showFormatButton={hasContent(draft.input) && isJson(draft.input)}\n className=\"h-[220px]\"\n />\n <FieldError>{errorOf('input')}</FieldError>\n <DatasetFieldErrors field=\"input\" errors={apiErrorsOf('input')} />\n </Field>\n <Field invalid={isInvalid('groundTruth')}>\n <FieldLabel>Ground truth</FieldLabel>\n <FieldDescription>The expected answer scorers compare against. JSON or plain text.</FieldDescription>\n <CodeEditor\n value={draft.groundTruth}\n onChange={editField('groundTruth')}\n aria-label=\"Ground truth\"\n placeholder={GROUND_TRUTH_PLACEHOLDER}\n showCopyButton={hasContent(draft.groundTruth)}\n showFormatButton={hasContent(draft.groundTruth) && isJson(draft.groundTruth)}\n className=\"h-[220px]\"\n />\n <FieldError>{errorOf('groundTruth')}</FieldError>\n <DatasetFieldErrors field=\"groundTruth\" errors={apiErrorsOf('groundTruth')} />\n </Field>\n </div>\n </div>\n\n <div hidden={step !== 2} className={stepTransition}>\n <Field invalid={isInvalid('toolMocks')}>\n <CodeEditor\n value={draft.toolMocks}\n onChange={editField('toolMocks')}\n aria-label=\"Tool mocks JSON\"\n placeholder={TOOL_MOCKS_PLACEHOLDER}\n showCopyButton={hasContent(draft.toolMocks)}\n showFormatButton={hasContent(draft.toolMocks)}\n className=\"h-80\"\n />\n <FieldError>{errorOf('toolMocks')}</FieldError>\n <DatasetFieldErrors field=\"toolMocks\" errors={apiErrorsOf('toolMocks')} />\n </Field>\n </div>\n\n <div hidden={step !== 3} className={stepTransition}>\n <SettingsContainer>\n <CollapsibleSettingsRow\n label=\"Request context\"\n description=\"Values passed to the target when this item runs.\"\n enabled={draft.requestContextEnabled}\n onEnabledChange={requestContextEnabled => update(() => ({ requestContextEnabled }))}\n errorMsg={errorOf('requestContext')}\n >\n <CodeEditor\n value={draft.requestContext}\n onChange={editField('requestContext')}\n aria-label=\"Request context JSON\"\n placeholder={requestContextPlaceholder(targetDataset?.requestContextSchema)}\n showCopyButton={hasContent(draft.requestContext)}\n showFormatButton={hasContent(draft.requestContext)}\n className=\"min-h-[120px]\"\n />\n </CollapsibleSettingsRow>\n <CollapsibleSettingsRow\n label=\"Expected trajectory\"\n description=\"The steps the target should take to produce its answer.\"\n enabled={draft.trajectoryEnabled}\n onEnabledChange={trajectoryEnabled => update(() => ({ trajectoryEnabled }))}\n errorMsg={errorOf('expectedTrajectory')}\n >\n <TrajectoryEditor\n ordering={draft.ordering}\n onOrderingChange={ordering => update(() => ({ ordering }))}\n steps={draft.trajectorySteps}\n onStepsChange={change => update(current => ({ trajectorySteps: change(current.trajectorySteps) }))}\n toolNames={toolNames}\n />\n </CollapsibleSettingsRow>\n </SettingsContainer>\n </div>\n </DialogBody>\n\n <DialogFooter>\n <StepProgress step={step} />\n {step === 1 ? (\n <DialogCancel>Cancel</DialogCancel>\n ) : (\n <Button\n variant=\"ghost\"\n disabled={addItem.isPending}\n onClick={() => setStep(current => (current - 1) as WizardStep)}\n >\n Back\n </Button>\n )}\n {step < 3 ? (\n <DialogAction disabled={!hasDataset} onConfirm={advance}>\n Next\n </DialogAction>\n ) : (\n <DialogAction onConfirm={() => void handleSubmit()}>Add item</DialogAction>\n )}\n </DialogFooter>\n\n {/* Rendered inside the dialog so the nested dialog stays in its focus scope instead of dismissing it. */}\n {renderCreateDatasetDialog?.({\n open: isCreateDatasetOpen,\n onOpenChange: setIsCreateDatasetOpen,\n onSuccess: setPickedDatasetId,\n })}\n </>\n );\n}\n"],"names":["toTrajectoryStepRow","useDatasetMutations","Dialog","jsx","DialogContent","jsxs","DialogHeader","DialogTitle","Badge","DialogDescription","cn","Txt","useState","useDataset","useTargetAgentTools","useDatasets","useLinkComponent","datasets","buildAddItemPayload","toast","parseFieldErrors","Fragment","DialogBody","DatasetPicker","Field","FieldLabel","FieldDescription","CodeEditor","FieldError","DatasetFieldErrors","SettingsContainer","CollapsibleSettingsRow","TrajectoryEditor","DialogFooter","DialogCancel","Button","DialogAction"],"mappings":"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"}
|
package/dist/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.es.js
CHANGED
|
@@ -14,7 +14,7 @@ import { B as Button } from '../../../../Button-D8a5EWJ5.js';
|
|
|
14
14
|
import { C as CodeEditor } from '../../../../code-editor-8qu58Npy.js';
|
|
15
15
|
import '../../../../highlight-CXDme3FZ.js';
|
|
16
16
|
import { D as Dialog, d as DialogContent, a as DialogBody, f as DialogFooter, b as DialogCancel, g as DialogHeader, j as DialogTitle, e as DialogDescription } from '../../../../dialog-AzCRnEo3.js';
|
|
17
|
-
import { F as Field, e as FieldLabel, b as FieldDescription, c as FieldError } from '../../../../field-
|
|
17
|
+
import { F as Field, e as FieldLabel, b as FieldDescription, c as FieldError } from '../../../../field-CfA5-ixH.js';
|
|
18
18
|
import '../../../../field-control-aria-DB6y41tQ.js';
|
|
19
19
|
import { T as Txt } from '../../../../Txt-BtIGLRk1.js';
|
|
20
20
|
import { S as SettingsContainer } from '../../../../settings-container-D6LsO77E.js';
|
|
@@ -66,6 +66,14 @@ const STEPS = {
|
|
|
66
66
|
};
|
|
67
67
|
const GROUND_TRUTH_PLACEHOLDER = '{ "text": "The answer you expect" }';
|
|
68
68
|
const hasContent = (value) => !["", "{}"].includes(value.trim());
|
|
69
|
+
const isJson = (value) => {
|
|
70
|
+
try {
|
|
71
|
+
JSON.parse(value);
|
|
72
|
+
return true;
|
|
73
|
+
} catch {
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
};
|
|
69
77
|
const STEP_COUNT = Object.keys(STEPS).length;
|
|
70
78
|
const STEP_OF_FIELD = {
|
|
71
79
|
input: 1,
|
|
@@ -179,7 +187,7 @@ function AddDatasetItemForm({
|
|
|
179
187
|
const errorOf = (field) => formError?.field === field ? formError.message : void 0;
|
|
180
188
|
const apiErrorsOf = (field) => apiErrors?.field === field ? apiErrors.errors : [];
|
|
181
189
|
const isInvalid = (field) => Boolean(errorOf(field)) || apiErrorsOf(field).length > 0;
|
|
182
|
-
const
|
|
190
|
+
const editField = (field) => (value) => {
|
|
183
191
|
update(() => ({ [field]: value }));
|
|
184
192
|
setApiErrors(void 0);
|
|
185
193
|
};
|
|
@@ -198,19 +206,19 @@ function AddDatasetItemForm({
|
|
|
198
206
|
onCreateDataset: renderCreateDatasetDialog ? () => setIsCreateDatasetOpen(true) : void 0
|
|
199
207
|
}
|
|
200
208
|
),
|
|
201
|
-
/* @__PURE__ */ jsxs("div", { className: "grid gap-5 sm:grid-cols-2", children: [
|
|
209
|
+
/* @__PURE__ */ jsxs("div", { className: "grid items-start gap-5 sm:grid-cols-2", children: [
|
|
202
210
|
/* @__PURE__ */ jsxs(Field, { invalid: isInvalid("input"), children: [
|
|
203
211
|
/* @__PURE__ */ jsx(FieldLabel, { required: true, children: "Input" }),
|
|
204
|
-
/* @__PURE__ */ jsx(FieldDescription, { children: "What the target receives when this item runs." }),
|
|
212
|
+
/* @__PURE__ */ jsx(FieldDescription, { children: "What the target receives when this item runs. JSON or plain text." }),
|
|
205
213
|
/* @__PURE__ */ jsx(
|
|
206
214
|
CodeEditor,
|
|
207
215
|
{
|
|
208
216
|
value: draft.input,
|
|
209
|
-
onChange:
|
|
210
|
-
"aria-label": "Input
|
|
217
|
+
onChange: editField("input"),
|
|
218
|
+
"aria-label": "Input",
|
|
211
219
|
showCopyButton: hasContent(draft.input),
|
|
212
|
-
showFormatButton: hasContent(draft.input),
|
|
213
|
-
className: "
|
|
220
|
+
showFormatButton: hasContent(draft.input) && isJson(draft.input),
|
|
221
|
+
className: "h-[220px]"
|
|
214
222
|
}
|
|
215
223
|
),
|
|
216
224
|
/* @__PURE__ */ jsx(FieldError, { children: errorOf("input") }),
|
|
@@ -218,17 +226,17 @@ function AddDatasetItemForm({
|
|
|
218
226
|
] }),
|
|
219
227
|
/* @__PURE__ */ jsxs(Field, { invalid: isInvalid("groundTruth"), children: [
|
|
220
228
|
/* @__PURE__ */ jsx(FieldLabel, { children: "Ground truth" }),
|
|
221
|
-
/* @__PURE__ */ jsx(FieldDescription, { children: "The expected answer scorers compare against." }),
|
|
229
|
+
/* @__PURE__ */ jsx(FieldDescription, { children: "The expected answer scorers compare against. JSON or plain text." }),
|
|
222
230
|
/* @__PURE__ */ jsx(
|
|
223
231
|
CodeEditor,
|
|
224
232
|
{
|
|
225
233
|
value: draft.groundTruth,
|
|
226
|
-
onChange:
|
|
227
|
-
"aria-label": "Ground truth
|
|
234
|
+
onChange: editField("groundTruth"),
|
|
235
|
+
"aria-label": "Ground truth",
|
|
228
236
|
placeholder: GROUND_TRUTH_PLACEHOLDER,
|
|
229
237
|
showCopyButton: hasContent(draft.groundTruth),
|
|
230
|
-
showFormatButton: hasContent(draft.groundTruth),
|
|
231
|
-
className: "
|
|
238
|
+
showFormatButton: hasContent(draft.groundTruth) && isJson(draft.groundTruth),
|
|
239
|
+
className: "h-[220px]"
|
|
232
240
|
}
|
|
233
241
|
),
|
|
234
242
|
/* @__PURE__ */ jsx(FieldError, { children: errorOf("groundTruth") }),
|
|
@@ -241,12 +249,12 @@ function AddDatasetItemForm({
|
|
|
241
249
|
CodeEditor,
|
|
242
250
|
{
|
|
243
251
|
value: draft.toolMocks,
|
|
244
|
-
onChange:
|
|
252
|
+
onChange: editField("toolMocks"),
|
|
245
253
|
"aria-label": "Tool mocks JSON",
|
|
246
254
|
placeholder: TOOL_MOCKS_PLACEHOLDER,
|
|
247
255
|
showCopyButton: hasContent(draft.toolMocks),
|
|
248
256
|
showFormatButton: hasContent(draft.toolMocks),
|
|
249
|
-
className: "
|
|
257
|
+
className: "h-80"
|
|
250
258
|
}
|
|
251
259
|
),
|
|
252
260
|
/* @__PURE__ */ jsx(FieldError, { children: errorOf("toolMocks") }),
|
|
@@ -265,7 +273,7 @@ function AddDatasetItemForm({
|
|
|
265
273
|
CodeEditor,
|
|
266
274
|
{
|
|
267
275
|
value: draft.requestContext,
|
|
268
|
-
onChange:
|
|
276
|
+
onChange: editField("requestContext"),
|
|
269
277
|
"aria-label": "Request context JSON",
|
|
270
278
|
placeholder: requestContextPlaceholder(targetDataset?.requestContextSchema),
|
|
271
279
|
showCopyButton: hasContent(draft.requestContext),
|
package/dist/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-dataset-item-dialog.es.js","sources":["../../../../../src/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.tsx"],"sourcesContent":["import type { AddDatasetItemParams } from '@mastra/client-js';\nimport { useDataset, useDatasetMutations, useDatasets } from '@mastra/react/hooks/datasets';\nimport { useState } from 'react';\nimport type { ReactNode } from 'react';\nimport type { CreateDatasetDialogRenderProps } from '../save-as-dataset-item-dialog';\nimport { buildAddItemPayload } from './build-add-item-payload';\nimport type { AddItemDraft, AddItemError, AddItemField } from './build-add-item-payload';\nimport { CollapsibleSettingsRow } from './collapsible-settings-row';\nimport { DatasetFieldErrors } from './dataset-field-errors';\nimport { DatasetPicker } from './dataset-picker';\nimport { parseFieldErrors } from './field-errors';\nimport type { FieldErrors } from './field-errors';\nimport { TrajectoryEditor } from './trajectory-editor';\nimport { toTrajectoryStepRow } from './trajectory-types';\nimport type { TrajectoryExpectation } from './trajectory-types';\nimport { useTargetAgentTools } from './use-target-agent-tools';\nimport { Badge } from '@/ds/components/Badge';\nimport { Button } from '@/ds/components/Button';\nimport { CodeEditor } from '@/ds/components/CodeEditor';\nimport {\n Dialog,\n DialogAction,\n DialogBody,\n DialogCancel,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from '@/ds/components/Dialog';\nimport { Field, FieldDescription, FieldError, FieldLabel } from '@/ds/components/Field';\nimport { Txt } from '@/ds/components/Txt';\nimport { SettingsContainer } from '@/ds/new/settings';\nimport { useLinkComponent } from '@/lib/framework';\nimport { cn } from '@/lib/utils';\nimport { toast } from '@/utils/toast';\n\nexport interface AddDatasetItemDialogProps {\n /** The dataset to add the item to. Without it, the dialog asks which dataset. */\n datasetId?: string;\n open: boolean;\n onOpenChange: (open: boolean) => void;\n onSuccess?: () => void;\n /** Raw JSON prefilled in the input editor. */\n initialInput?: string;\n /** Raw JSON prefilled in the ground truth editor. */\n initialGroundTruth?: string;\n /** Raw JSON array prefilled in the tool mocks editor. */\n initialToolMocks?: string;\n /** Steps prefilled in the trajectory editor; switches the expected trajectory on. */\n initialTrajectory?: TrajectoryExpectation;\n /** Where the item comes from; sent as is. */\n source?: AddDatasetItemParams['source'];\n /** Renders a create-dataset dialog, offered first in the dataset picker. The created dataset gets picked. */\n renderCreateDatasetDialog?: (props: CreateDatasetDialogRenderProps) => ReactNode;\n}\n\ntype InitialValues = Pick<\n AddDatasetItemDialogProps,\n 'initialInput' | 'initialGroundTruth' | 'initialToolMocks' | 'initialTrajectory'\n>;\n\nconst initialDraft = ({\n initialInput,\n initialGroundTruth,\n initialToolMocks,\n initialTrajectory,\n}: InitialValues): AddItemDraft => {\n const steps = initialTrajectory?.steps ?? [];\n return {\n input: initialInput ?? '{}',\n groundTruth: initialGroundTruth ?? '',\n toolMocks: initialToolMocks ?? '',\n requestContextEnabled: false,\n requestContext: '',\n trajectoryEnabled: steps.length > 0,\n ordering: initialTrajectory?.ordering ?? 'relaxed',\n trajectorySteps: steps.map(toTrajectoryStepRow),\n };\n};\n\nconst TOOL_MOCKS_PLACEHOLDER = `[\n { \"toolName\": \"getWeather\", \"args\": { \"city\": \"Paris\" }, \"output\": { \"temp\": 18 } },\n { \"toolName\": \"getForecast\", \"args\": {}, \"output\": { \"days\": 5 }, \"matchArgs\": \"ignore\" }\n]`;\n\n/** The keys of the dataset's request context schema, as a JSON object to fill in. */\nconst requestContextPlaceholder = (schema: unknown) => {\n const properties = typeof schema === 'object' && schema !== null && 'properties' in schema ? schema.properties : {};\n const keys = typeof properties === 'object' && properties !== null ? Object.keys(properties) : [];\n if (keys.length === 0) return '{ \"tenantId\": \"acme\" }';\n return JSON.stringify(Object.fromEntries(keys.map(key => [key, ''])), null, 2);\n};\n\ntype WizardStep = 1 | 2 | 3;\n\n/** Only steps whose fields don't describe themselves carry a description. */\nconst STEPS: Record<WizardStep, { title: string; description?: ReactNode; optional?: boolean }> = {\n 1: { title: 'Input and ground truth' },\n 2: {\n title: 'Tool mocks',\n optional: true,\n description:\n 'Return fixed results instead of running the real tools. When the target calls a tool listed here with the same args, it gets your output back. Leave empty to run tools for real.',\n },\n 3: {\n title: 'Context and trajectory',\n optional: true,\n description:\n 'Pass values to the run, or check the steps the target takes. Leave both off to add the item without them.',\n },\n};\n\nconst GROUND_TRUTH_PLACEHOLDER = '{ \"text\": \"The answer you expect\" }';\n\n/** Copying an editor that holds nothing worth copying is noise. */\nconst hasContent = (value: string) => !['', '{}'].includes(value.trim());\n\nconst STEP_COUNT = Object.keys(STEPS).length;\n\nconst STEP_OF_FIELD: Record<AddItemField, WizardStep> = {\n input: 1,\n groundTruth: 1,\n toolMocks: 2,\n requestContext: 3,\n expectedTrajectory: 3,\n};\n\nconst isAddItemField = (field: string): field is AddItemField => field in STEP_OF_FIELD;\n\nconst stepTransition = 'animate-in fade-in slide-in-from-bottom-2 duration-200 motion-reduce:animate-none';\n\n/**\n * Add an item to a dataset in three steps: the input and its expected answer, tool mocks, then the request\n * context and expected trajectory. Only the first step is required; the others can be left empty.\n */\nexport function AddDatasetItemDialog({ open, onOpenChange, ...props }: AddDatasetItemDialogProps) {\n const { addItem } = useDatasetMutations();\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange} pending={addItem.isPending}>\n <DialogContent size=\"xl\">\n {/* The form unmounts on close, so every open starts fresh from the initial values. */}\n <AddDatasetItemForm {...props} addItem={addItem} onOpenChange={onOpenChange} />\n </DialogContent>\n </Dialog>\n );\n}\n\nfunction WizardHeader({ step }: { step: WizardStep }) {\n const { title, description, optional } = STEPS[step];\n\n return (\n <DialogHeader key={step} className={stepTransition}>\n <div className=\"flex min-w-0 items-center gap-2\">\n <DialogTitle>{title}</DialogTitle>\n {optional && <Badge size=\"sm\">Optional</Badge>}\n </div>\n {description && <DialogDescription>{description}</DialogDescription>}\n </DialogHeader>\n );\n}\n\nfunction StepProgress({ step }: { step: WizardStep }) {\n return (\n <div className=\"mr-auto flex items-center gap-2\">\n <ol className=\"flex gap-1\" aria-label={`Step ${step} of ${STEP_COUNT}`}>\n {Object.keys(STEPS).map((key, index) => (\n <li\n key={key}\n aria-current={index + 1 === step ? 'step' : undefined}\n className={cn('h-1 w-6 rounded-full transition-colors', index < step ? 'bg-success-indicator' : 'bg-fill')}\n />\n ))}\n </ol>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\" aria-hidden=\"true\">\n Step {step} of {STEP_COUNT}\n </Txt>\n </div>\n );\n}\n\ntype AddDatasetItemFormProps = Omit<AddDatasetItemDialogProps, 'open'> & {\n addItem: ReturnType<typeof useDatasetMutations>['addItem'];\n};\n\nfunction AddDatasetItemForm({\n datasetId,\n onOpenChange,\n onSuccess,\n source,\n renderCreateDatasetDialog,\n addItem,\n ...initialValues\n}: AddDatasetItemFormProps) {\n const [step, setStep] = useState<WizardStep>(1);\n const [draft, setDraft] = useState(() => initialDraft(initialValues));\n const [formError, setFormError] = useState<AddItemError>();\n const [apiErrors, setApiErrors] = useState<FieldErrors>();\n const [pickedDatasetId, setPickedDatasetId] = useState('');\n const [isCreateDatasetOpen, setIsCreateDatasetOpen] = useState(false);\n\n const targetDatasetId = datasetId ?? pickedDatasetId;\n const { data: targetDataset } = useDataset({\n datasetId: targetDatasetId,\n queryOptions: { enabled: Boolean(targetDatasetId) },\n });\n const { toolNames } = useTargetAgentTools(targetDatasetId, { enabled: true });\n const { data: datasetList, isLoading: isDatasetsLoading } = useDatasets({ queryOptions: { enabled: !datasetId } });\n const { navigate, paths } = useLinkComponent();\n\n const datasets = datasetList?.datasets ?? [];\n const pickedDataset = datasets.find(dataset => dataset.id === pickedDatasetId);\n // Picking needs the dataset listed: a just-created one is picked before the refetch returns it.\n const hasDataset = datasetId !== undefined || pickedDataset !== undefined;\n\n const update = (patch: (current: AddItemDraft) => Partial<AddItemDraft>) => {\n setDraft(current => ({ ...current, ...patch(current) }));\n setFormError(undefined);\n };\n\n const showError = (error: AddItemError) => {\n setFormError(error);\n setStep(STEP_OF_FIELD[error.field]);\n };\n\n /** Checks what was entered so far, then moves on; the trajectory is checked once reached. */\n const advance = () => {\n const checked = buildAddItemPayload({ ...draft, trajectoryEnabled: false });\n if ('error' in checked) return showError(checked.error);\n setStep(step === 1 ? 2 : 3);\n };\n\n const handleSubmit = async () => {\n const payload = buildAddItemPayload(draft);\n if ('error' in payload) return showError(payload.error);\n\n try {\n const item = await addItem.mutateAsync({\n datasetId: targetDatasetId,\n ...payload.params,\n ...(source ? { source } : {}),\n });\n if (pickedDataset) {\n // Opens the dataset with the new item's drawer; apps without that route return ''.\n const itemHref = paths.datasetItemLink(pickedDataset.id, item.id);\n toast.success(`Added to ${pickedDataset.name}`, {\n action: itemHref ? { label: 'Go to dataset', onClick: () => navigate(itemHref) } : undefined,\n });\n } else {\n toast.success('Item added successfully');\n }\n onOpenChange(false);\n onSuccess?.();\n } catch (error) {\n const fieldErrors = parseFieldErrors(error);\n if (fieldErrors) {\n setApiErrors(fieldErrors);\n if (isAddItemField(fieldErrors.field)) setStep(STEP_OF_FIELD[fieldErrors.field]);\n return;\n }\n toast.error(`Failed to add item: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n };\n\n const errorOf = (field: AddItemField) => (formError?.field === field ? formError.message : undefined);\n const apiErrorsOf = (field: AddItemField) => (apiErrors?.field === field ? apiErrors.errors : []);\n const isInvalid = (field: AddItemField) => Boolean(errorOf(field)) || apiErrorsOf(field).length > 0;\n\n const editJson = (field: 'input' | 'groundTruth' | 'toolMocks' | 'requestContext') => (value: string) => {\n update(() => ({ [field]: value }));\n setApiErrors(undefined);\n };\n\n return (\n <>\n <WizardHeader step={step} />\n\n <DialogBody>\n {/* Every step stays mounted so what was entered survives going back and forth. */}\n <div hidden={step !== 1} className={cn('flex flex-col gap-6', stepTransition)}>\n {datasetId === undefined && (\n <DatasetPicker\n datasets={datasets}\n value={pickedDatasetId}\n onValueChange={setPickedDatasetId}\n loading={isDatasetsLoading || (Boolean(pickedDatasetId) && !pickedDataset)}\n disabled={addItem.isPending}\n onCreateDataset={renderCreateDatasetDialog ? () => setIsCreateDatasetOpen(true) : undefined}\n />\n )}\n\n <div className=\"grid gap-5 sm:grid-cols-2\">\n <Field invalid={isInvalid('input')}>\n <FieldLabel required>Input</FieldLabel>\n <FieldDescription>What the target receives when this item runs.</FieldDescription>\n <CodeEditor\n value={draft.input}\n onChange={editJson('input')}\n aria-label=\"Input JSON\"\n showCopyButton={hasContent(draft.input)}\n showFormatButton={hasContent(draft.input)}\n className=\"min-h-[220px]\"\n />\n <FieldError>{errorOf('input')}</FieldError>\n <DatasetFieldErrors field=\"input\" errors={apiErrorsOf('input')} />\n </Field>\n <Field invalid={isInvalid('groundTruth')}>\n <FieldLabel>Ground truth</FieldLabel>\n <FieldDescription>The expected answer scorers compare against.</FieldDescription>\n <CodeEditor\n value={draft.groundTruth}\n onChange={editJson('groundTruth')}\n aria-label=\"Ground truth JSON\"\n placeholder={GROUND_TRUTH_PLACEHOLDER}\n showCopyButton={hasContent(draft.groundTruth)}\n showFormatButton={hasContent(draft.groundTruth)}\n className=\"min-h-[220px]\"\n />\n <FieldError>{errorOf('groundTruth')}</FieldError>\n <DatasetFieldErrors field=\"groundTruth\" errors={apiErrorsOf('groundTruth')} />\n </Field>\n </div>\n </div>\n\n <div hidden={step !== 2} className={stepTransition}>\n <Field invalid={isInvalid('toolMocks')}>\n <CodeEditor\n value={draft.toolMocks}\n onChange={editJson('toolMocks')}\n aria-label=\"Tool mocks JSON\"\n placeholder={TOOL_MOCKS_PLACEHOLDER}\n showCopyButton={hasContent(draft.toolMocks)}\n showFormatButton={hasContent(draft.toolMocks)}\n className=\"min-h-[220px]\"\n />\n <FieldError>{errorOf('toolMocks')}</FieldError>\n <DatasetFieldErrors field=\"toolMocks\" errors={apiErrorsOf('toolMocks')} />\n </Field>\n </div>\n\n <div hidden={step !== 3} className={stepTransition}>\n <SettingsContainer>\n <CollapsibleSettingsRow\n label=\"Request context\"\n description=\"Values passed to the target when this item runs.\"\n enabled={draft.requestContextEnabled}\n onEnabledChange={requestContextEnabled => update(() => ({ requestContextEnabled }))}\n errorMsg={errorOf('requestContext')}\n >\n <CodeEditor\n value={draft.requestContext}\n onChange={editJson('requestContext')}\n aria-label=\"Request context JSON\"\n placeholder={requestContextPlaceholder(targetDataset?.requestContextSchema)}\n showCopyButton={hasContent(draft.requestContext)}\n showFormatButton={hasContent(draft.requestContext)}\n className=\"min-h-[120px]\"\n />\n </CollapsibleSettingsRow>\n <CollapsibleSettingsRow\n label=\"Expected trajectory\"\n description=\"The steps the target should take to produce its answer.\"\n enabled={draft.trajectoryEnabled}\n onEnabledChange={trajectoryEnabled => update(() => ({ trajectoryEnabled }))}\n errorMsg={errorOf('expectedTrajectory')}\n >\n <TrajectoryEditor\n ordering={draft.ordering}\n onOrderingChange={ordering => update(() => ({ ordering }))}\n steps={draft.trajectorySteps}\n onStepsChange={change => update(current => ({ trajectorySteps: change(current.trajectorySteps) }))}\n toolNames={toolNames}\n />\n </CollapsibleSettingsRow>\n </SettingsContainer>\n </div>\n </DialogBody>\n\n <DialogFooter>\n <StepProgress step={step} />\n {step === 1 ? (\n <DialogCancel>Cancel</DialogCancel>\n ) : (\n <Button\n variant=\"ghost\"\n disabled={addItem.isPending}\n onClick={() => setStep(current => (current - 1) as WizardStep)}\n >\n Back\n </Button>\n )}\n {step < 3 ? (\n <DialogAction disabled={!hasDataset} onConfirm={advance}>\n Next\n </DialogAction>\n ) : (\n <DialogAction onConfirm={() => void handleSubmit()}>Add item</DialogAction>\n )}\n </DialogFooter>\n\n {/* Rendered inside the dialog so the nested dialog stays in its focus scope instead of dismissing it. */}\n {renderCreateDatasetDialog?.({\n open: isCreateDatasetOpen,\n onOpenChange: setIsCreateDatasetOpen,\n onSuccess: setPickedDatasetId,\n })}\n </>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA8DA,MAAM,eAAe,CAAC;AAAA,EACpB,YAAA;AAAA,EACA,kBAAA;AAAA,EACA,gBAAA;AAAA,EACA;AACF,CAAA,KAAmC;AACjC,EAAA,MAAM,KAAA,GAAQ,iBAAA,EAAmB,KAAA,IAAS,EAAC;AAC3C,EAAA,OAAO;AAAA,IACL,OAAO,YAAA,IAAgB,IAAA;AAAA,IACvB,aAAa,kBAAA,IAAsB,EAAA;AAAA,IACnC,WAAW,gBAAA,IAAoB,EAAA;AAAA,IAC/B,qBAAA,EAAuB,KAAA;AAAA,IACvB,cAAA,EAAgB,EAAA;AAAA,IAChB,iBAAA,EAAmB,MAAM,MAAA,GAAS,CAAA;AAAA,IAClC,QAAA,EAAU,mBAAmB,QAAA,IAAY,SAAA;AAAA,IACzC,eAAA,EAAiB,KAAA,CAAM,GAAA,CAAI,mBAAmB;AAAA,GAChD;AACF,CAAA;AAEA,MAAM,sBAAA,GAAyB,CAAA;AAAA;AAAA;AAAA,CAAA,CAAA;AAM/B,MAAM,yBAAA,GAA4B,CAAC,MAAA,KAAoB;AACrD,EAAA,MAAM,UAAA,GAAa,OAAO,MAAA,KAAW,QAAA,IAAY,MAAA,KAAW,QAAQ,YAAA,IAAgB,MAAA,GAAS,MAAA,CAAO,UAAA,GAAa,EAAC;AAClH,EAAA,MAAM,IAAA,GAAO,OAAO,UAAA,KAAe,QAAA,IAAY,UAAA,KAAe,OAAO,MAAA,CAAO,IAAA,CAAK,UAAU,CAAA,GAAI,EAAC;AAChG,EAAA,IAAI,IAAA,CAAK,MAAA,KAAW,CAAA,EAAG,OAAO,wBAAA;AAC9B,EAAA,OAAO,IAAA,CAAK,SAAA,CAAU,MAAA,CAAO,WAAA,CAAY,KAAK,GAAA,CAAI,CAAA,GAAA,KAAO,CAAC,GAAA,EAAK,EAAE,CAAC,CAAC,CAAA,EAAG,MAAM,CAAC,CAAA;AAC/E,CAAA;AAKA,MAAM,KAAA,GAA4F;AAAA,EAChG,CAAA,EAAG,EAAE,KAAA,EAAO,wBAAA,EAAyB;AAAA,EACrC,CAAA,EAAG;AAAA,IACD,KAAA,EAAO,YAAA;AAAA,IACP,QAAA,EAAU,IAAA;AAAA,IACV,WAAA,EACE;AAAA,GACJ;AAAA,EACA,CAAA,EAAG;AAAA,IACD,KAAA,EAAO,wBAAA;AAAA,IACP,QAAA,EAAU,IAAA;AAAA,IACV,WAAA,EACE;AAAA;AAEN,CAAA;AAEA,MAAM,wBAAA,GAA2B,qCAAA;AAGjC,MAAM,UAAA,GAAa,CAAC,KAAA,KAAkB,CAAC,CAAC,EAAA,EAAI,IAAI,CAAA,CAAE,QAAA,CAAS,KAAA,CAAM,IAAA,EAAM,CAAA;AAEvE,MAAM,UAAA,GAAa,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA,CAAE,MAAA;AAEtC,MAAM,aAAA,GAAkD;AAAA,EACtD,KAAA,EAAO,CAAA;AAAA,EACP,WAAA,EAAa,CAAA;AAAA,EACb,SAAA,EAAW,CAAA;AAAA,EACX,cAAA,EAAgB,CAAA;AAAA,EAChB,kBAAA,EAAoB;AACtB,CAAA;AAEA,MAAM,cAAA,GAAiB,CAAC,KAAA,KAAyC,KAAA,IAAS,aAAA;AAE1E,MAAM,cAAA,GAAiB,mFAAA;AAMhB,SAAS,qBAAqB,EAAE,IAAA,EAAM,YAAA,EAAc,GAAG,OAAM,EAA8B;AAChG,EAAA,MAAM,EAAE,OAAA,EAAQ,GAAI,mBAAA,EAAoB;AAExC,EAAA,2BACG,MAAA,EAAA,EAAO,IAAA,EAAY,cAA4B,OAAA,EAAS,OAAA,CAAQ,WAC/D,QAAA,kBAAA,GAAA,CAAC,aAAA,EAAA,EAAc,IAAA,EAAK,IAAA,EAElB,8BAAC,kBAAA,EAAA,EAAoB,GAAG,OAAO,OAAA,EAAkB,YAAA,EAA4B,GAC/E,CAAA,EACF,CAAA;AAEJ;AAEA,SAAS,YAAA,CAAa,EAAE,IAAA,EAAK,EAAyB;AACpD,EAAA,MAAM,EAAE,KAAA,EAAO,WAAA,EAAa,QAAA,EAAS,GAAI,MAAM,IAAI,CAAA;AAEnD,EAAA,uBACE,IAAA,CAAC,YAAA,EAAA,EAAwB,SAAA,EAAW,cAAA,EAClC,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,iCAAA,EACb,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,eAAa,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,MACnB,QAAA,oBAAY,GAAA,CAAC,KAAA,EAAA,EAAM,IAAA,EAAK,MAAK,QAAA,EAAA,UAAA,EAAQ;AAAA,KAAA,EACxC,CAAA;AAAA,IACC,WAAA,oBAAe,GAAA,CAAC,iBAAA,EAAA,EAAmB,QAAA,EAAA,WAAA,EAAY;AAAA,GAAA,EAAA,EAL/B,IAMnB,CAAA;AAEJ;AAEA,SAAS,YAAA,CAAa,EAAE,IAAA,EAAK,EAAyB;AACpD,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iCAAA,EACb,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,QAAG,SAAA,EAAU,YAAA,EAAa,YAAA,EAAY,CAAA,KAAA,EAAQ,IAAI,CAAA,IAAA,EAAO,UAAU,CAAA,CAAA,EACjE,QAAA,EAAA,MAAA,CAAO,KAAK,KAAK,CAAA,CAAE,GAAA,CAAI,CAAC,KAAK,KAAA,qBAC5B,GAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QAEC,cAAA,EAAc,KAAA,GAAQ,CAAA,KAAM,IAAA,GAAO,MAAA,GAAS,MAAA;AAAA,QAC5C,WAAW,EAAA,CAAG,wCAAA,EAA0C,KAAA,GAAQ,IAAA,GAAO,yBAAyB,SAAS;AAAA,OAAA;AAAA,MAFpG;AAAA,KAIR,CAAA,EACH,CAAA;AAAA,oBACA,IAAA,CAAC,OAAI,EAAA,EAAG,MAAA,EAAO,SAAQ,SAAA,EAAU,IAAA,EAAK,OAAA,EAAQ,aAAA,EAAY,MAAA,EAAO,QAAA,EAAA;AAAA,MAAA,OAAA;AAAA,MACzD,IAAA;AAAA,MAAK,MAAA;AAAA,MAAK;AAAA,KAAA,EAClB;AAAA,GAAA,EACF,CAAA;AAEJ;AAMA,SAAS,kBAAA,CAAmB;AAAA,EAC1B,SAAA;AAAA,EACA,YAAA;AAAA,EACA,SAAA;AAAA,EACA,MAAA;AAAA,EACA,yBAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA4B;AAC1B,EAAA,MAAM,CAAC,IAAA,EAAM,OAAO,CAAA,GAAI,SAAqB,CAAC,CAAA;AAC9C,EAAA,MAAM,CAAC,OAAO,QAAQ,CAAA,GAAI,SAAS,MAAM,YAAA,CAAa,aAAa,CAAC,CAAA;AACpE,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,QAAA,EAAuB;AACzD,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,QAAA,EAAsB;AACxD,EAAA,MAAM,CAAC,eAAA,EAAiB,kBAAkB,CAAA,GAAI,SAAS,EAAE,CAAA;AACzD,EAAA,MAAM,CAAC,mBAAA,EAAqB,sBAAsB,CAAA,GAAI,SAAS,KAAK,CAAA;AAEpE,EAAA,MAAM,kBAAkB,SAAA,IAAa,eAAA;AACrC,EAAA,MAAM,EAAE,IAAA,EAAM,aAAA,EAAc,GAAI,UAAA,CAAW;AAAA,IACzC,SAAA,EAAW,eAAA;AAAA,IACX,YAAA,EAAc,EAAE,OAAA,EAAS,OAAA,CAAQ,eAAe,CAAA;AAAE,GACnD,CAAA;AACD,EAAA,MAAM,EAAE,WAAU,GAAI,mBAAA,CAAoB,iBAAiB,EAAE,OAAA,EAAS,MAAM,CAAA;AAC5E,EAAA,MAAM,EAAE,IAAA,EAAM,WAAA,EAAa,SAAA,EAAW,mBAAkB,GAAI,WAAA,CAAY,EAAE,YAAA,EAAc,EAAE,OAAA,EAAS,CAAC,SAAA,IAAa,CAAA;AACjH,EAAA,MAAM,EAAE,QAAA,EAAU,KAAA,EAAM,GAAI,gBAAA,EAAiB;AAE7C,EAAA,MAAM,QAAA,GAAW,WAAA,EAAa,QAAA,IAAY,EAAC;AAC3C,EAAA,MAAM,gBAAgB,QAAA,CAAS,IAAA,CAAK,CAAA,OAAA,KAAW,OAAA,CAAQ,OAAO,eAAe,CAAA;AAE7E,EAAA,MAAM,UAAA,GAAa,SAAA,KAAc,MAAA,IAAa,aAAA,KAAkB,MAAA;AAEhE,EAAA,MAAM,MAAA,GAAS,CAAC,KAAA,KAA4D;AAC1E,IAAA,QAAA,CAAS,CAAA,OAAA,MAAY,EAAE,GAAG,OAAA,EAAS,GAAG,KAAA,CAAM,OAAO,GAAE,CAAE,CAAA;AACvD,IAAA,YAAA,CAAa,MAAS,CAAA;AAAA,EACxB,CAAA;AAEA,EAAA,MAAM,SAAA,GAAY,CAAC,KAAA,KAAwB;AACzC,IAAA,YAAA,CAAa,KAAK,CAAA;AAClB,IAAA,OAAA,CAAQ,aAAA,CAAc,KAAA,CAAM,KAAK,CAAC,CAAA;AAAA,EACpC,CAAA;AAGA,EAAA,MAAM,UAAU,MAAM;AACpB,IAAA,MAAM,UAAU,mBAAA,CAAoB,EAAE,GAAG,KAAA,EAAO,iBAAA,EAAmB,OAAO,CAAA;AAC1E,IAAA,IAAI,OAAA,IAAW,OAAA,EAAS,OAAO,SAAA,CAAU,QAAQ,KAAK,CAAA;AACtD,IAAA,OAAA,CAAQ,IAAA,KAAS,CAAA,GAAI,CAAA,GAAI,CAAC,CAAA;AAAA,EAC5B,CAAA;AAEA,EAAA,MAAM,eAAe,YAAY;AAC/B,IAAA,MAAM,OAAA,GAAU,oBAAoB,KAAK,CAAA;AACzC,IAAA,IAAI,OAAA,IAAW,OAAA,EAAS,OAAO,SAAA,CAAU,QAAQ,KAAK,CAAA;AAEtD,IAAA,IAAI;AACF,MAAA,MAAM,IAAA,GAAO,MAAM,OAAA,CAAQ,WAAA,CAAY;AAAA,QACrC,SAAA,EAAW,eAAA;AAAA,QACX,GAAG,OAAA,CAAQ,MAAA;AAAA,QACX,GAAI,MAAA,GAAS,EAAE,MAAA,KAAW;AAAC,OAC5B,CAAA;AACD,MAAA,IAAI,aAAA,EAAe;AAEjB,QAAA,MAAM,WAAW,KAAA,CAAM,eAAA,CAAgB,aAAA,CAAc,EAAA,EAAI,KAAK,EAAE,CAAA;AAChE,QAAA,KAAA,CAAM,OAAA,CAAQ,CAAA,SAAA,EAAY,aAAA,CAAc,IAAI,CAAA,CAAA,EAAI;AAAA,UAC9C,MAAA,EAAQ,QAAA,GAAW,EAAE,KAAA,EAAO,eAAA,EAAiB,SAAS,MAAM,QAAA,CAAS,QAAQ,CAAA,EAAE,GAAI,KAAA;AAAA,SACpF,CAAA;AAAA,MACH,CAAA,MAAO;AACL,QAAA,KAAA,CAAM,QAAQ,yBAAyB,CAAA;AAAA,MACzC;AACA,MAAA,YAAA,CAAa,KAAK,CAAA;AAClB,MAAA,SAAA,IAAY;AAAA,IACd,SAAS,KAAA,EAAO;AACd,MAAA,MAAM,WAAA,GAAc,iBAAiB,KAAK,CAAA;AAC1C,MAAA,IAAI,WAAA,EAAa;AACf,QAAA,YAAA,CAAa,WAAW,CAAA;AACxB,QAAA,IAAI,cAAA,CAAe,YAAY,KAAK,CAAA,UAAW,aAAA,CAAc,WAAA,CAAY,KAAK,CAAC,CAAA;AAC/E,QAAA;AAAA,MACF;AACA,MAAA,KAAA,CAAM,MAAM,CAAA,oBAAA,EAAuB,KAAA,YAAiB,QAAQ,KAAA,CAAM,OAAA,GAAU,eAAe,CAAA,CAAE,CAAA;AAAA,IAC/F;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,UAAU,CAAC,KAAA,KAAyB,WAAW,KAAA,KAAU,KAAA,GAAQ,UAAU,OAAA,GAAU,MAAA;AAC3F,EAAA,MAAM,WAAA,GAAc,CAAC,KAAA,KAAyB,SAAA,EAAW,UAAU,KAAA,GAAQ,SAAA,CAAU,SAAS,EAAC;AAC/F,EAAA,MAAM,SAAA,GAAY,CAAC,KAAA,KAAwB,OAAA,CAAQ,OAAA,CAAQ,KAAK,CAAC,CAAA,IAAK,WAAA,CAAY,KAAK,CAAA,CAAE,MAAA,GAAS,CAAA;AAElG,EAAA,MAAM,QAAA,GAAW,CAAC,KAAA,KAAoE,CAAC,KAAA,KAAkB;AACvG,IAAA,MAAA,CAAO,OAAO,EAAE,CAAC,KAAK,GAAG,OAAM,CAAE,CAAA;AACjC,IAAA,YAAA,CAAa,MAAS,CAAA;AAAA,EACxB,CAAA;AAEA,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,gBAAa,IAAA,EAAY,CAAA;AAAA,yBAEzB,UAAA,EAAA,EAEC,QAAA,EAAA;AAAA,sBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,QAAQ,IAAA,KAAS,CAAA,EAAG,WAAW,EAAA,CAAG,qBAAA,EAAuB,cAAc,CAAA,EACzE,QAAA,EAAA;AAAA,QAAA,SAAA,KAAc,MAAA,oBACb,GAAA;AAAA,UAAC,aAAA;AAAA,UAAA;AAAA,YACC,QAAA;AAAA,YACA,KAAA,EAAO,eAAA;AAAA,YACP,aAAA,EAAe,kBAAA;AAAA,YACf,OAAA,EAAS,iBAAA,IAAsB,OAAA,CAAQ,eAAe,KAAK,CAAC,aAAA;AAAA,YAC5D,UAAU,OAAA,CAAQ,SAAA;AAAA,YAClB,eAAA,EAAiB,yBAAA,GAA4B,MAAM,sBAAA,CAAuB,IAAI,CAAA,GAAI;AAAA;AAAA,SACpF;AAAA,wBAGF,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2BAAA,EACb,QAAA,EAAA;AAAA,0BAAA,IAAA,CAAC,KAAA,EAAA,EAAM,OAAA,EAAS,SAAA,CAAU,OAAO,CAAA,EAC/B,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,UAAA,EAAA,EAAW,QAAA,EAAQ,IAAA,EAAC,QAAA,EAAA,OAAA,EAAK,CAAA;AAAA,4BAC1B,GAAA,CAAC,oBAAiB,QAAA,EAAA,+CAAA,EAA6C,CAAA;AAAA,4BAC/D,GAAA;AAAA,cAAC,UAAA;AAAA,cAAA;AAAA,gBACC,OAAO,KAAA,CAAM,KAAA;AAAA,gBACb,QAAA,EAAU,SAAS,OAAO,CAAA;AAAA,gBAC1B,YAAA,EAAW,YAAA;AAAA,gBACX,cAAA,EAAgB,UAAA,CAAW,KAAA,CAAM,KAAK,CAAA;AAAA,gBACtC,gBAAA,EAAkB,UAAA,CAAW,KAAA,CAAM,KAAK,CAAA;AAAA,gBACxC,SAAA,EAAU;AAAA;AAAA,aACZ;AAAA,4BACA,GAAA,CAAC,UAAA,EAAA,EAAY,QAAA,EAAA,OAAA,CAAQ,OAAO,CAAA,EAAE,CAAA;AAAA,gCAC7B,kBAAA,EAAA,EAAmB,KAAA,EAAM,SAAQ,MAAA,EAAQ,WAAA,CAAY,OAAO,CAAA,EAAG;AAAA,WAAA,EAClE,CAAA;AAAA,0BACA,IAAA,CAAC,KAAA,EAAA,EAAM,OAAA,EAAS,SAAA,CAAU,aAAa,CAAA,EACrC,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,cAAW,QAAA,EAAA,cAAA,EAAY,CAAA;AAAA,4BACxB,GAAA,CAAC,oBAAiB,QAAA,EAAA,8CAAA,EAA4C,CAAA;AAAA,4BAC9D,GAAA;AAAA,cAAC,UAAA;AAAA,cAAA;AAAA,gBACC,OAAO,KAAA,CAAM,WAAA;AAAA,gBACb,QAAA,EAAU,SAAS,aAAa,CAAA;AAAA,gBAChC,YAAA,EAAW,mBAAA;AAAA,gBACX,WAAA,EAAa,wBAAA;AAAA,gBACb,cAAA,EAAgB,UAAA,CAAW,KAAA,CAAM,WAAW,CAAA;AAAA,gBAC5C,gBAAA,EAAkB,UAAA,CAAW,KAAA,CAAM,WAAW,CAAA;AAAA,gBAC9C,SAAA,EAAU;AAAA;AAAA,aACZ;AAAA,4BACA,GAAA,CAAC,UAAA,EAAA,EAAY,QAAA,EAAA,OAAA,CAAQ,aAAa,CAAA,EAAE,CAAA;AAAA,gCACnC,kBAAA,EAAA,EAAmB,KAAA,EAAM,eAAc,MAAA,EAAQ,WAAA,CAAY,aAAa,CAAA,EAAG;AAAA,WAAA,EAC9E;AAAA,SAAA,EACF;AAAA,OAAA,EACF,CAAA;AAAA,sBAEA,GAAA,CAAC,KAAA,EAAA,EAAI,MAAA,EAAQ,IAAA,KAAS,CAAA,EAAG,SAAA,EAAW,cAAA,EAClC,QAAA,kBAAA,IAAA,CAAC,KAAA,EAAA,EAAM,OAAA,EAAS,SAAA,CAAU,WAAW,CAAA,EACnC,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,UAAA;AAAA,UAAA;AAAA,YACC,OAAO,KAAA,CAAM,SAAA;AAAA,YACb,QAAA,EAAU,SAAS,WAAW,CAAA;AAAA,YAC9B,YAAA,EAAW,iBAAA;AAAA,YACX,WAAA,EAAa,sBAAA;AAAA,YACb,cAAA,EAAgB,UAAA,CAAW,KAAA,CAAM,SAAS,CAAA;AAAA,YAC1C,gBAAA,EAAkB,UAAA,CAAW,KAAA,CAAM,SAAS,CAAA;AAAA,YAC5C,SAAA,EAAU;AAAA;AAAA,SACZ;AAAA,wBACA,GAAA,CAAC,UAAA,EAAA,EAAY,QAAA,EAAA,OAAA,CAAQ,WAAW,CAAA,EAAE,CAAA;AAAA,4BACjC,kBAAA,EAAA,EAAmB,KAAA,EAAM,aAAY,MAAA,EAAQ,WAAA,CAAY,WAAW,CAAA,EAAG;AAAA,OAAA,EAC1E,CAAA,EACF,CAAA;AAAA,sBAEA,GAAA,CAAC,SAAI,MAAA,EAAQ,IAAA,KAAS,GAAG,SAAA,EAAW,cAAA,EAClC,+BAAC,iBAAA,EAAA,EACC,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,sBAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAM,iBAAA;AAAA,YACN,WAAA,EAAY,kDAAA;AAAA,YACZ,SAAS,KAAA,CAAM,qBAAA;AAAA,YACf,iBAAiB,CAAA,qBAAA,KAAyB,MAAA,CAAO,OAAO,EAAE,uBAAsB,CAAE,CAAA;AAAA,YAClF,QAAA,EAAU,QAAQ,gBAAgB,CAAA;AAAA,YAElC,QAAA,kBAAA,GAAA;AAAA,cAAC,UAAA;AAAA,cAAA;AAAA,gBACC,OAAO,KAAA,CAAM,cAAA;AAAA,gBACb,QAAA,EAAU,SAAS,gBAAgB,CAAA;AAAA,gBACnC,YAAA,EAAW,sBAAA;AAAA,gBACX,WAAA,EAAa,yBAAA,CAA0B,aAAA,EAAe,oBAAoB,CAAA;AAAA,gBAC1E,cAAA,EAAgB,UAAA,CAAW,KAAA,CAAM,cAAc,CAAA;AAAA,gBAC/C,gBAAA,EAAkB,UAAA,CAAW,KAAA,CAAM,cAAc,CAAA;AAAA,gBACjD,SAAA,EAAU;AAAA;AAAA;AACZ;AAAA,SACF;AAAA,wBACA,GAAA;AAAA,UAAC,sBAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAM,qBAAA;AAAA,YACN,WAAA,EAAY,yDAAA;AAAA,YACZ,SAAS,KAAA,CAAM,iBAAA;AAAA,YACf,iBAAiB,CAAA,iBAAA,KAAqB,MAAA,CAAO,OAAO,EAAE,mBAAkB,CAAE,CAAA;AAAA,YAC1E,QAAA,EAAU,QAAQ,oBAAoB,CAAA;AAAA,YAEtC,QAAA,kBAAA,GAAA;AAAA,cAAC,gBAAA;AAAA,cAAA;AAAA,gBACC,UAAU,KAAA,CAAM,QAAA;AAAA,gBAChB,kBAAkB,CAAA,QAAA,KAAY,MAAA,CAAO,OAAO,EAAE,UAAS,CAAE,CAAA;AAAA,gBACzD,OAAO,KAAA,CAAM,eAAA;AAAA,gBACb,aAAA,EAAe,CAAA,MAAA,KAAU,MAAA,CAAO,CAAA,OAAA,MAAY,EAAE,iBAAiB,MAAA,CAAO,OAAA,CAAQ,eAAe,CAAA,EAAE,CAAE,CAAA;AAAA,gBACjG;AAAA;AAAA;AACF;AAAA;AACF,OAAA,EACF,CAAA,EACF;AAAA,KAAA,EACF,CAAA;AAAA,yBAEC,YAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,gBAAa,IAAA,EAAY,CAAA;AAAA,MACzB,IAAA,KAAS,CAAA,mBACR,GAAA,CAAC,YAAA,EAAA,EAAa,oBAAM,CAAA,mBAEpB,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAQ,OAAA;AAAA,UACR,UAAU,OAAA,CAAQ,SAAA;AAAA,UAClB,OAAA,EAAS,MAAM,OAAA,CAAQ,CAAA,OAAA,KAAY,UAAU,CAAgB,CAAA;AAAA,UAC9D,QAAA,EAAA;AAAA;AAAA,OAED;AAAA,MAED,OAAO,CAAA,mBACN,GAAA,CAAC,gBAAa,QAAA,EAAU,CAAC,YAAY,SAAA,EAAW,OAAA,EAAS,QAAA,EAAA,MAAA,EAEzD,CAAA,uBAEC,YAAA,EAAA,EAAa,SAAA,EAAW,MAAM,KAAK,YAAA,IAAgB,QAAA,EAAA,UAAA,EAAQ;AAAA,KAAA,EAEhE,CAAA;AAAA,IAGC,yBAAA,GAA4B;AAAA,MAC3B,IAAA,EAAM,mBAAA;AAAA,MACN,YAAA,EAAc,sBAAA;AAAA,MACd,SAAA,EAAW;AAAA,KACZ;AAAA,GAAA,EACH,CAAA;AAEJ;;;;"}
|
|
1
|
+
{"version":3,"file":"add-dataset-item-dialog.es.js","sources":["../../../../../src/domains/datasets/components/add-dataset-item-dialog/add-dataset-item-dialog.tsx"],"sourcesContent":["import type { AddDatasetItemParams } from '@mastra/client-js';\nimport { useDataset, useDatasetMutations, useDatasets } from '@mastra/react/hooks/datasets';\nimport { useState } from 'react';\nimport type { ReactNode } from 'react';\nimport type { CreateDatasetDialogRenderProps } from '../save-as-dataset-item-dialog';\nimport { buildAddItemPayload } from './build-add-item-payload';\nimport type { AddItemDraft, AddItemError, AddItemField } from './build-add-item-payload';\nimport { CollapsibleSettingsRow } from './collapsible-settings-row';\nimport { DatasetFieldErrors } from './dataset-field-errors';\nimport { DatasetPicker } from './dataset-picker';\nimport { parseFieldErrors } from './field-errors';\nimport type { FieldErrors } from './field-errors';\nimport { TrajectoryEditor } from './trajectory-editor';\nimport { toTrajectoryStepRow } from './trajectory-types';\nimport type { TrajectoryExpectation } from './trajectory-types';\nimport { useTargetAgentTools } from './use-target-agent-tools';\nimport { Badge } from '@/ds/components/Badge';\nimport { Button } from '@/ds/components/Button';\nimport { CodeEditor } from '@/ds/components/CodeEditor';\nimport {\n Dialog,\n DialogAction,\n DialogBody,\n DialogCancel,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from '@/ds/components/Dialog';\nimport { Field, FieldDescription, FieldError, FieldLabel } from '@/ds/components/Field';\nimport { Txt } from '@/ds/components/Txt';\nimport { SettingsContainer } from '@/ds/new/settings';\nimport { useLinkComponent } from '@/lib/framework';\nimport { cn } from '@/lib/utils';\nimport { toast } from '@/utils/toast';\n\nexport interface AddDatasetItemDialogProps {\n /** The dataset to add the item to. Without it, the dialog asks which dataset. */\n datasetId?: string;\n open: boolean;\n onOpenChange: (open: boolean) => void;\n onSuccess?: () => void;\n /** JSON or plain text prefilled in the input editor. */\n initialInput?: string;\n /** JSON or plain text prefilled in the ground truth editor. */\n initialGroundTruth?: string;\n /** Raw JSON array prefilled in the tool mocks editor. */\n initialToolMocks?: string;\n /** Steps prefilled in the trajectory editor; switches the expected trajectory on. */\n initialTrajectory?: TrajectoryExpectation;\n /** Where the item comes from; sent as is. */\n source?: AddDatasetItemParams['source'];\n /** Renders a create-dataset dialog, offered first in the dataset picker. The created dataset gets picked. */\n renderCreateDatasetDialog?: (props: CreateDatasetDialogRenderProps) => ReactNode;\n}\n\ntype InitialValues = Pick<\n AddDatasetItemDialogProps,\n 'initialInput' | 'initialGroundTruth' | 'initialToolMocks' | 'initialTrajectory'\n>;\n\nconst initialDraft = ({\n initialInput,\n initialGroundTruth,\n initialToolMocks,\n initialTrajectory,\n}: InitialValues): AddItemDraft => {\n const steps = initialTrajectory?.steps ?? [];\n return {\n input: initialInput ?? '{}',\n groundTruth: initialGroundTruth ?? '',\n toolMocks: initialToolMocks ?? '',\n requestContextEnabled: false,\n requestContext: '',\n trajectoryEnabled: steps.length > 0,\n ordering: initialTrajectory?.ordering ?? 'relaxed',\n trajectorySteps: steps.map(toTrajectoryStepRow),\n };\n};\n\nconst TOOL_MOCKS_PLACEHOLDER = `[\n { \"toolName\": \"getWeather\", \"args\": { \"city\": \"Paris\" }, \"output\": { \"temp\": 18 } },\n { \"toolName\": \"getForecast\", \"args\": {}, \"output\": { \"days\": 5 }, \"matchArgs\": \"ignore\" }\n]`;\n\n/** The keys of the dataset's request context schema, as a JSON object to fill in. */\nconst requestContextPlaceholder = (schema: unknown) => {\n const properties = typeof schema === 'object' && schema !== null && 'properties' in schema ? schema.properties : {};\n const keys = typeof properties === 'object' && properties !== null ? Object.keys(properties) : [];\n if (keys.length === 0) return '{ \"tenantId\": \"acme\" }';\n return JSON.stringify(Object.fromEntries(keys.map(key => [key, ''])), null, 2);\n};\n\ntype WizardStep = 1 | 2 | 3;\n\n/** Only steps whose fields don't describe themselves carry a description. */\nconst STEPS: Record<WizardStep, { title: string; description?: ReactNode; optional?: boolean }> = {\n 1: { title: 'Input and ground truth' },\n 2: {\n title: 'Tool mocks',\n optional: true,\n description:\n 'Return fixed results instead of running the real tools. When the target calls a tool listed here with the same args, it gets your output back. Leave empty to run tools for real.',\n },\n 3: {\n title: 'Context and trajectory',\n optional: true,\n description:\n 'Pass values to the run, or check the steps the target takes. Leave both off to add the item without them.',\n },\n};\n\nconst GROUND_TRUTH_PLACEHOLDER = '{ \"text\": \"The answer you expect\" }';\n\n/** Copying an editor that holds nothing worth copying is noise. */\nconst hasContent = (value: string) => !['', '{}'].includes(value.trim());\n\n/** Only JSON can be formatted; offering it on plain text would only fail. */\nconst isJson = (value: string) => {\n try {\n JSON.parse(value);\n return true;\n } catch {\n return false;\n }\n};\n\nconst STEP_COUNT = Object.keys(STEPS).length;\n\nconst STEP_OF_FIELD: Record<AddItemField, WizardStep> = {\n input: 1,\n groundTruth: 1,\n toolMocks: 2,\n requestContext: 3,\n expectedTrajectory: 3,\n};\n\nconst isAddItemField = (field: string): field is AddItemField => field in STEP_OF_FIELD;\n\nconst stepTransition = 'animate-in fade-in slide-in-from-bottom-2 duration-200 motion-reduce:animate-none';\n\n/**\n * Add an item to a dataset in three steps: the input and its expected answer, tool mocks, then the request\n * context and expected trajectory. Only the first step is required; the others can be left empty.\n */\nexport function AddDatasetItemDialog({ open, onOpenChange, ...props }: AddDatasetItemDialogProps) {\n const { addItem } = useDatasetMutations();\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange} pending={addItem.isPending}>\n <DialogContent size=\"xl\">\n {/* The form unmounts on close, so every open starts fresh from the initial values. */}\n <AddDatasetItemForm {...props} addItem={addItem} onOpenChange={onOpenChange} />\n </DialogContent>\n </Dialog>\n );\n}\n\nfunction WizardHeader({ step }: { step: WizardStep }) {\n const { title, description, optional } = STEPS[step];\n\n return (\n <DialogHeader key={step} className={stepTransition}>\n <div className=\"flex min-w-0 items-center gap-2\">\n <DialogTitle>{title}</DialogTitle>\n {optional && <Badge size=\"sm\">Optional</Badge>}\n </div>\n {description && <DialogDescription>{description}</DialogDescription>}\n </DialogHeader>\n );\n}\n\nfunction StepProgress({ step }: { step: WizardStep }) {\n return (\n <div className=\"mr-auto flex items-center gap-2\">\n <ol className=\"flex gap-1\" aria-label={`Step ${step} of ${STEP_COUNT}`}>\n {Object.keys(STEPS).map((key, index) => (\n <li\n key={key}\n aria-current={index + 1 === step ? 'step' : undefined}\n className={cn('h-1 w-6 rounded-full transition-colors', index < step ? 'bg-success-indicator' : 'bg-fill')}\n />\n ))}\n </ol>\n <Txt as=\"span\" variant=\"caption\" tone=\"muted\" aria-hidden=\"true\">\n Step {step} of {STEP_COUNT}\n </Txt>\n </div>\n );\n}\n\ntype AddDatasetItemFormProps = Omit<AddDatasetItemDialogProps, 'open'> & {\n addItem: ReturnType<typeof useDatasetMutations>['addItem'];\n};\n\nfunction AddDatasetItemForm({\n datasetId,\n onOpenChange,\n onSuccess,\n source,\n renderCreateDatasetDialog,\n addItem,\n ...initialValues\n}: AddDatasetItemFormProps) {\n const [step, setStep] = useState<WizardStep>(1);\n const [draft, setDraft] = useState(() => initialDraft(initialValues));\n const [formError, setFormError] = useState<AddItemError>();\n const [apiErrors, setApiErrors] = useState<FieldErrors>();\n const [pickedDatasetId, setPickedDatasetId] = useState('');\n const [isCreateDatasetOpen, setIsCreateDatasetOpen] = useState(false);\n\n const targetDatasetId = datasetId ?? pickedDatasetId;\n const { data: targetDataset } = useDataset({\n datasetId: targetDatasetId,\n queryOptions: { enabled: Boolean(targetDatasetId) },\n });\n const { toolNames } = useTargetAgentTools(targetDatasetId, { enabled: true });\n const { data: datasetList, isLoading: isDatasetsLoading } = useDatasets({ queryOptions: { enabled: !datasetId } });\n const { navigate, paths } = useLinkComponent();\n\n const datasets = datasetList?.datasets ?? [];\n const pickedDataset = datasets.find(dataset => dataset.id === pickedDatasetId);\n // Picking needs the dataset listed: a just-created one is picked before the refetch returns it.\n const hasDataset = datasetId !== undefined || pickedDataset !== undefined;\n\n const update = (patch: (current: AddItemDraft) => Partial<AddItemDraft>) => {\n setDraft(current => ({ ...current, ...patch(current) }));\n setFormError(undefined);\n };\n\n const showError = (error: AddItemError) => {\n setFormError(error);\n setStep(STEP_OF_FIELD[error.field]);\n };\n\n /** Checks what was entered so far, then moves on; the trajectory is checked once reached. */\n const advance = () => {\n const checked = buildAddItemPayload({ ...draft, trajectoryEnabled: false });\n if ('error' in checked) return showError(checked.error);\n setStep(step === 1 ? 2 : 3);\n };\n\n const handleSubmit = async () => {\n const payload = buildAddItemPayload(draft);\n if ('error' in payload) return showError(payload.error);\n\n try {\n const item = await addItem.mutateAsync({\n datasetId: targetDatasetId,\n ...payload.params,\n ...(source ? { source } : {}),\n });\n if (pickedDataset) {\n // Opens the dataset with the new item's drawer; apps without that route return ''.\n const itemHref = paths.datasetItemLink(pickedDataset.id, item.id);\n toast.success(`Added to ${pickedDataset.name}`, {\n action: itemHref ? { label: 'Go to dataset', onClick: () => navigate(itemHref) } : undefined,\n });\n } else {\n toast.success('Item added successfully');\n }\n onOpenChange(false);\n onSuccess?.();\n } catch (error) {\n const fieldErrors = parseFieldErrors(error);\n if (fieldErrors) {\n setApiErrors(fieldErrors);\n if (isAddItemField(fieldErrors.field)) setStep(STEP_OF_FIELD[fieldErrors.field]);\n return;\n }\n toast.error(`Failed to add item: ${error instanceof Error ? error.message : 'Unknown error'}`);\n }\n };\n\n const errorOf = (field: AddItemField) => (formError?.field === field ? formError.message : undefined);\n const apiErrorsOf = (field: AddItemField) => (apiErrors?.field === field ? apiErrors.errors : []);\n const isInvalid = (field: AddItemField) => Boolean(errorOf(field)) || apiErrorsOf(field).length > 0;\n\n const editField = (field: 'input' | 'groundTruth' | 'toolMocks' | 'requestContext') => (value: string) => {\n update(() => ({ [field]: value }));\n setApiErrors(undefined);\n };\n\n return (\n <>\n <WizardHeader step={step} />\n\n <DialogBody>\n {/* Every step stays mounted so what was entered survives going back and forth. */}\n <div hidden={step !== 1} className={cn('flex flex-col gap-6', stepTransition)}>\n {datasetId === undefined && (\n <DatasetPicker\n datasets={datasets}\n value={pickedDatasetId}\n onValueChange={setPickedDatasetId}\n loading={isDatasetsLoading || (Boolean(pickedDatasetId) && !pickedDataset)}\n disabled={addItem.isPending}\n onCreateDataset={renderCreateDatasetDialog ? () => setIsCreateDatasetOpen(true) : undefined}\n />\n )}\n\n <div className=\"grid items-start gap-5 sm:grid-cols-2\">\n <Field invalid={isInvalid('input')}>\n <FieldLabel required>Input</FieldLabel>\n <FieldDescription>What the target receives when this item runs. JSON or plain text.</FieldDescription>\n <CodeEditor\n value={draft.input}\n onChange={editField('input')}\n aria-label=\"Input\"\n showCopyButton={hasContent(draft.input)}\n showFormatButton={hasContent(draft.input) && isJson(draft.input)}\n className=\"h-[220px]\"\n />\n <FieldError>{errorOf('input')}</FieldError>\n <DatasetFieldErrors field=\"input\" errors={apiErrorsOf('input')} />\n </Field>\n <Field invalid={isInvalid('groundTruth')}>\n <FieldLabel>Ground truth</FieldLabel>\n <FieldDescription>The expected answer scorers compare against. JSON or plain text.</FieldDescription>\n <CodeEditor\n value={draft.groundTruth}\n onChange={editField('groundTruth')}\n aria-label=\"Ground truth\"\n placeholder={GROUND_TRUTH_PLACEHOLDER}\n showCopyButton={hasContent(draft.groundTruth)}\n showFormatButton={hasContent(draft.groundTruth) && isJson(draft.groundTruth)}\n className=\"h-[220px]\"\n />\n <FieldError>{errorOf('groundTruth')}</FieldError>\n <DatasetFieldErrors field=\"groundTruth\" errors={apiErrorsOf('groundTruth')} />\n </Field>\n </div>\n </div>\n\n <div hidden={step !== 2} className={stepTransition}>\n <Field invalid={isInvalid('toolMocks')}>\n <CodeEditor\n value={draft.toolMocks}\n onChange={editField('toolMocks')}\n aria-label=\"Tool mocks JSON\"\n placeholder={TOOL_MOCKS_PLACEHOLDER}\n showCopyButton={hasContent(draft.toolMocks)}\n showFormatButton={hasContent(draft.toolMocks)}\n className=\"h-80\"\n />\n <FieldError>{errorOf('toolMocks')}</FieldError>\n <DatasetFieldErrors field=\"toolMocks\" errors={apiErrorsOf('toolMocks')} />\n </Field>\n </div>\n\n <div hidden={step !== 3} className={stepTransition}>\n <SettingsContainer>\n <CollapsibleSettingsRow\n label=\"Request context\"\n description=\"Values passed to the target when this item runs.\"\n enabled={draft.requestContextEnabled}\n onEnabledChange={requestContextEnabled => update(() => ({ requestContextEnabled }))}\n errorMsg={errorOf('requestContext')}\n >\n <CodeEditor\n value={draft.requestContext}\n onChange={editField('requestContext')}\n aria-label=\"Request context JSON\"\n placeholder={requestContextPlaceholder(targetDataset?.requestContextSchema)}\n showCopyButton={hasContent(draft.requestContext)}\n showFormatButton={hasContent(draft.requestContext)}\n className=\"min-h-[120px]\"\n />\n </CollapsibleSettingsRow>\n <CollapsibleSettingsRow\n label=\"Expected trajectory\"\n description=\"The steps the target should take to produce its answer.\"\n enabled={draft.trajectoryEnabled}\n onEnabledChange={trajectoryEnabled => update(() => ({ trajectoryEnabled }))}\n errorMsg={errorOf('expectedTrajectory')}\n >\n <TrajectoryEditor\n ordering={draft.ordering}\n onOrderingChange={ordering => update(() => ({ ordering }))}\n steps={draft.trajectorySteps}\n onStepsChange={change => update(current => ({ trajectorySteps: change(current.trajectorySteps) }))}\n toolNames={toolNames}\n />\n </CollapsibleSettingsRow>\n </SettingsContainer>\n </div>\n </DialogBody>\n\n <DialogFooter>\n <StepProgress step={step} />\n {step === 1 ? (\n <DialogCancel>Cancel</DialogCancel>\n ) : (\n <Button\n variant=\"ghost\"\n disabled={addItem.isPending}\n onClick={() => setStep(current => (current - 1) as WizardStep)}\n >\n Back\n </Button>\n )}\n {step < 3 ? (\n <DialogAction disabled={!hasDataset} onConfirm={advance}>\n Next\n </DialogAction>\n ) : (\n <DialogAction onConfirm={() => void handleSubmit()}>Add item</DialogAction>\n )}\n </DialogFooter>\n\n {/* Rendered inside the dialog so the nested dialog stays in its focus scope instead of dismissing it. */}\n {renderCreateDatasetDialog?.({\n open: isCreateDatasetOpen,\n onOpenChange: setIsCreateDatasetOpen,\n onSuccess: setPickedDatasetId,\n })}\n </>\n );\n}\n"],"names":[],"mappings":"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"}
|
package/dist/domains/datasets/components/add-dataset-item-dialog/build-add-item-payload.cjs.js
CHANGED
|
@@ -11,6 +11,10 @@ const parseJson = (raw) => {
|
|
|
11
11
|
return { ok: false };
|
|
12
12
|
}
|
|
13
13
|
};
|
|
14
|
+
const parseJsonOrText = (raw) => {
|
|
15
|
+
const parsed = parseJson(raw);
|
|
16
|
+
return parsed.ok ? parsed.value : raw;
|
|
17
|
+
};
|
|
14
18
|
const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
15
19
|
const parseOptionalObject = (raw) => {
|
|
16
20
|
if (!raw.trim()) return { ok: true };
|
|
@@ -46,14 +50,9 @@ function toExpectedStep(row, index) {
|
|
|
46
50
|
return { step: { name, stepType: row.stepType, ...args } };
|
|
47
51
|
}
|
|
48
52
|
function buildAddItemPayload(draft) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
if (draft.groundTruth.trim()) {
|
|
53
|
-
const groundTruth = parseJson(draft.groundTruth);
|
|
54
|
-
if (!groundTruth.ok) return { error: { field: "groundTruth", message: "Ground truth must be valid JSON" } };
|
|
55
|
-
params.groundTruth = groundTruth.value;
|
|
56
|
-
}
|
|
53
|
+
if (!draft.input.trim()) return { error: { field: "input", message: "Input is required" } };
|
|
54
|
+
const params = { input: parseJsonOrText(draft.input) };
|
|
55
|
+
if (draft.groundTruth.trim()) params.groundTruth = parseJsonOrText(draft.groundTruth);
|
|
57
56
|
const toolMocks = parseToolMocks(draft.toolMocks);
|
|
58
57
|
if ("message" in toolMocks) return { error: { field: "toolMocks", message: toolMocks.message } };
|
|
59
58
|
if (toolMocks.toolMocks) params.toolMocks = toolMocks.toolMocks;
|
package/dist/domains/datasets/components/add-dataset-item-dialog/build-add-item-payload.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-add-item-payload.cjs.js","sources":["../../../../../src/domains/datasets/components/add-dataset-item-dialog/build-add-item-payload.ts"],"sourcesContent":["import type { AddDatasetItemParams, DatasetItemToolMock } from '@mastra/client-js';\nimport { isToolStepType } from './trajectory-types';\nimport type { ExpectedStep, TrajectoryOrdering, TrajectoryStepRow } from './trajectory-types';\n\nexport type AddItemField = 'input' | 'groundTruth' | 'toolMocks' | 'requestContext' | 'expectedTrajectory';\n\nexport interface AddItemError {\n field: AddItemField;\n message: string;\n}\n\nexport interface AddItemDraft {\n input: string;\n groundTruth: string;\n /** Raw JSON: an ordered array of mocks, sent as written so every mock the runtime supports can be declared. */\n toolMocks: string;\n requestContextEnabled: boolean;\n /** Raw JSON object of values passed to the target. */\n requestContext: string;\n trajectoryEnabled: boolean;\n ordering: TrajectoryOrdering;\n trajectorySteps: TrajectoryStepRow[];\n}\n\nexport type AddItemParams = Omit<AddDatasetItemParams, 'datasetId'>;\n\ntype JsonResult = { ok: true; value: unknown } | { ok: false };\n\nconst parseJson = (raw: string): JsonResult => {\n try {\n return { ok: true, value: JSON.parse(raw) };\n } catch {\n return { ok: false };\n }\n};\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value);\n\n/** Blank sends nothing; anything else must be a JSON object. */\nconst parseOptionalObject = (raw: string): { ok: true; value?: Record<string, unknown> } | { ok: false } => {\n if (!raw.trim()) return { ok: true };\n const parsed = parseJson(raw);\n if (!parsed.ok || !isRecord(parsed.value)) return { ok: false };\n return { ok: true, value: parsed.value };\n};\n\nconst isToolMock = (value: unknown): value is DatasetItemToolMock =>\n isRecord(value) && typeof value.toolName === 'string' && isRecord(value.args);\n\n/** Blank sends nothing; anything else must be a JSON array of `{ toolName, args, output }` mocks. */\nfunction parseToolMocks(raw: string): { toolMocks?: DatasetItemToolMock[] } | { message: string } {\n if (!raw.trim()) return {};\n const parsed = parseJson(raw);\n if (!parsed.ok) return { message: 'Tool mocks must be valid JSON' };\n if (!Array.isArray(parsed.value)) return { message: 'Tool mocks must be a JSON array' };\n if (!parsed.value.every(isToolMock))\n return { message: 'Each tool mock needs a \"toolName\" string and an \"args\" object' };\n return parsed.value.length > 0 ? { toolMocks: parsed.value } : {};\n}\n\nfunction toExpectedStep(row: TrajectoryStepRow, index: number): { step: ExpectedStep } | { message: string } {\n const label = `Step ${index + 1}`;\n const name = row.name.trim();\n if (!name) return { message: `${label} needs a name` };\n\n // Only tool steps have expected args; any other type parses blank and sends none.\n const toolArgs = parseOptionalObject(isToolStepType(row.stepType) ? row.toolArgs : '');\n if (!toolArgs.ok) return { message: `The expected args of ${label.toLowerCase()} must be a JSON object` };\n const args = toolArgs.value ? { toolArgs: toolArgs.value } : {};\n\n // A prefilled row keeps its recorded details; the editor's name and args replace the recorded ones.\n const { recorded } = row;\n if (recorded?.stepType === 'tool_call' || recorded?.stepType === 'mcp_tool_call') {\n const { toolArgs: _recordedArgs, ...details } = recorded;\n return { step: { ...details, name, ...args } };\n }\n if (recorded) return { step: { ...recorded, name } };\n\n if (row.stepType === 'generic') return { step: { name } };\n if (!isToolStepType(row.stepType)) return { step: { name, stepType: row.stepType } };\n return { step: { name, stepType: row.stepType, ...args } };\n}\n\n/** The request body for the dialog, or the first error with the field that owns it. Options that are off are left out. */\nexport function buildAddItemPayload(draft: AddItemDraft): { params: AddItemParams } | { error: AddItemError } {\n
|
|
1
|
+
{"version":3,"file":"build-add-item-payload.cjs.js","sources":["../../../../../src/domains/datasets/components/add-dataset-item-dialog/build-add-item-payload.ts"],"sourcesContent":["import type { AddDatasetItemParams, DatasetItemToolMock } from '@mastra/client-js';\nimport { isToolStepType } from './trajectory-types';\nimport type { ExpectedStep, TrajectoryOrdering, TrajectoryStepRow } from './trajectory-types';\n\nexport type AddItemField = 'input' | 'groundTruth' | 'toolMocks' | 'requestContext' | 'expectedTrajectory';\n\nexport interface AddItemError {\n field: AddItemField;\n message: string;\n}\n\nexport interface AddItemDraft {\n /** JSON is sent parsed; anything else is sent as plain text. */\n input: string;\n /** Like the input; blank sends nothing. */\n groundTruth: string;\n /** Raw JSON: an ordered array of mocks, sent as written so every mock the runtime supports can be declared. */\n toolMocks: string;\n requestContextEnabled: boolean;\n /** Raw JSON object of values passed to the target. */\n requestContext: string;\n trajectoryEnabled: boolean;\n ordering: TrajectoryOrdering;\n trajectorySteps: TrajectoryStepRow[];\n}\n\nexport type AddItemParams = Omit<AddDatasetItemParams, 'datasetId'>;\n\ntype JsonResult = { ok: true; value: unknown } | { ok: false };\n\nconst parseJson = (raw: string): JsonResult => {\n try {\n return { ok: true, value: JSON.parse(raw) };\n } catch {\n return { ok: false };\n }\n};\n\n/** Text that parses as JSON is sent as that value; any other text is sent as a string. */\nconst parseJsonOrText = (raw: string): unknown => {\n const parsed = parseJson(raw);\n return parsed.ok ? parsed.value : raw;\n};\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value);\n\n/** Blank sends nothing; anything else must be a JSON object. */\nconst parseOptionalObject = (raw: string): { ok: true; value?: Record<string, unknown> } | { ok: false } => {\n if (!raw.trim()) return { ok: true };\n const parsed = parseJson(raw);\n if (!parsed.ok || !isRecord(parsed.value)) return { ok: false };\n return { ok: true, value: parsed.value };\n};\n\nconst isToolMock = (value: unknown): value is DatasetItemToolMock =>\n isRecord(value) && typeof value.toolName === 'string' && isRecord(value.args);\n\n/** Blank sends nothing; anything else must be a JSON array of `{ toolName, args, output }` mocks. */\nfunction parseToolMocks(raw: string): { toolMocks?: DatasetItemToolMock[] } | { message: string } {\n if (!raw.trim()) return {};\n const parsed = parseJson(raw);\n if (!parsed.ok) return { message: 'Tool mocks must be valid JSON' };\n if (!Array.isArray(parsed.value)) return { message: 'Tool mocks must be a JSON array' };\n if (!parsed.value.every(isToolMock))\n return { message: 'Each tool mock needs a \"toolName\" string and an \"args\" object' };\n return parsed.value.length > 0 ? { toolMocks: parsed.value } : {};\n}\n\nfunction toExpectedStep(row: TrajectoryStepRow, index: number): { step: ExpectedStep } | { message: string } {\n const label = `Step ${index + 1}`;\n const name = row.name.trim();\n if (!name) return { message: `${label} needs a name` };\n\n // Only tool steps have expected args; any other type parses blank and sends none.\n const toolArgs = parseOptionalObject(isToolStepType(row.stepType) ? row.toolArgs : '');\n if (!toolArgs.ok) return { message: `The expected args of ${label.toLowerCase()} must be a JSON object` };\n const args = toolArgs.value ? { toolArgs: toolArgs.value } : {};\n\n // A prefilled row keeps its recorded details; the editor's name and args replace the recorded ones.\n const { recorded } = row;\n if (recorded?.stepType === 'tool_call' || recorded?.stepType === 'mcp_tool_call') {\n const { toolArgs: _recordedArgs, ...details } = recorded;\n return { step: { ...details, name, ...args } };\n }\n if (recorded) return { step: { ...recorded, name } };\n\n if (row.stepType === 'generic') return { step: { name } };\n if (!isToolStepType(row.stepType)) return { step: { name, stepType: row.stepType } };\n return { step: { name, stepType: row.stepType, ...args } };\n}\n\n/** The request body for the dialog, or the first error with the field that owns it. Options that are off are left out. */\nexport function buildAddItemPayload(draft: AddItemDraft): { params: AddItemParams } | { error: AddItemError } {\n if (!draft.input.trim()) return { error: { field: 'input', message: 'Input is required' } };\n const params: AddItemParams = { input: parseJsonOrText(draft.input) };\n\n if (draft.groundTruth.trim()) params.groundTruth = parseJsonOrText(draft.groundTruth);\n\n const toolMocks = parseToolMocks(draft.toolMocks);\n if ('message' in toolMocks) return { error: { field: 'toolMocks', message: toolMocks.message } };\n if (toolMocks.toolMocks) params.toolMocks = toolMocks.toolMocks;\n\n if (draft.requestContextEnabled) {\n const requestContext = parseOptionalObject(draft.requestContext);\n if (!requestContext.ok)\n return { error: { field: 'requestContext', message: 'Request context must be a JSON object' } };\n if (requestContext.value) params.requestContext = requestContext.value;\n }\n\n if (draft.trajectoryEnabled && draft.trajectorySteps.length > 0) {\n const steps: ExpectedStep[] = [];\n for (const [index, row] of draft.trajectorySteps.entries()) {\n const result = toExpectedStep(row, index);\n if ('message' in result) return { error: { field: 'expectedTrajectory', message: result.message } };\n steps.push(result.step);\n }\n params.expectedTrajectory = { ordering: draft.ordering, steps };\n }\n\n return { params };\n}\n"],"names":["isToolStepType"],"mappings":"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"}
|
package/dist/domains/datasets/components/add-dataset-item-dialog/build-add-item-payload.es.js
CHANGED
|
@@ -7,6 +7,10 @@ const parseJson = (raw) => {
|
|
|
7
7
|
return { ok: false };
|
|
8
8
|
}
|
|
9
9
|
};
|
|
10
|
+
const parseJsonOrText = (raw) => {
|
|
11
|
+
const parsed = parseJson(raw);
|
|
12
|
+
return parsed.ok ? parsed.value : raw;
|
|
13
|
+
};
|
|
10
14
|
const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
11
15
|
const parseOptionalObject = (raw) => {
|
|
12
16
|
if (!raw.trim()) return { ok: true };
|
|
@@ -42,14 +46,9 @@ function toExpectedStep(row, index) {
|
|
|
42
46
|
return { step: { name, stepType: row.stepType, ...args } };
|
|
43
47
|
}
|
|
44
48
|
function buildAddItemPayload(draft) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
if (draft.groundTruth.trim()) {
|
|
49
|
-
const groundTruth = parseJson(draft.groundTruth);
|
|
50
|
-
if (!groundTruth.ok) return { error: { field: "groundTruth", message: "Ground truth must be valid JSON" } };
|
|
51
|
-
params.groundTruth = groundTruth.value;
|
|
52
|
-
}
|
|
49
|
+
if (!draft.input.trim()) return { error: { field: "input", message: "Input is required" } };
|
|
50
|
+
const params = { input: parseJsonOrText(draft.input) };
|
|
51
|
+
if (draft.groundTruth.trim()) params.groundTruth = parseJsonOrText(draft.groundTruth);
|
|
53
52
|
const toolMocks = parseToolMocks(draft.toolMocks);
|
|
54
53
|
if ("message" in toolMocks) return { error: { field: "toolMocks", message: toolMocks.message } };
|
|
55
54
|
if (toolMocks.toolMocks) params.toolMocks = toolMocks.toolMocks;
|
package/dist/domains/datasets/components/add-dataset-item-dialog/build-add-item-payload.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-add-item-payload.es.js","sources":["../../../../../src/domains/datasets/components/add-dataset-item-dialog/build-add-item-payload.ts"],"sourcesContent":["import type { AddDatasetItemParams, DatasetItemToolMock } from '@mastra/client-js';\nimport { isToolStepType } from './trajectory-types';\nimport type { ExpectedStep, TrajectoryOrdering, TrajectoryStepRow } from './trajectory-types';\n\nexport type AddItemField = 'input' | 'groundTruth' | 'toolMocks' | 'requestContext' | 'expectedTrajectory';\n\nexport interface AddItemError {\n field: AddItemField;\n message: string;\n}\n\nexport interface AddItemDraft {\n input: string;\n groundTruth: string;\n /** Raw JSON: an ordered array of mocks, sent as written so every mock the runtime supports can be declared. */\n toolMocks: string;\n requestContextEnabled: boolean;\n /** Raw JSON object of values passed to the target. */\n requestContext: string;\n trajectoryEnabled: boolean;\n ordering: TrajectoryOrdering;\n trajectorySteps: TrajectoryStepRow[];\n}\n\nexport type AddItemParams = Omit<AddDatasetItemParams, 'datasetId'>;\n\ntype JsonResult = { ok: true; value: unknown } | { ok: false };\n\nconst parseJson = (raw: string): JsonResult => {\n try {\n return { ok: true, value: JSON.parse(raw) };\n } catch {\n return { ok: false };\n }\n};\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value);\n\n/** Blank sends nothing; anything else must be a JSON object. */\nconst parseOptionalObject = (raw: string): { ok: true; value?: Record<string, unknown> } | { ok: false } => {\n if (!raw.trim()) return { ok: true };\n const parsed = parseJson(raw);\n if (!parsed.ok || !isRecord(parsed.value)) return { ok: false };\n return { ok: true, value: parsed.value };\n};\n\nconst isToolMock = (value: unknown): value is DatasetItemToolMock =>\n isRecord(value) && typeof value.toolName === 'string' && isRecord(value.args);\n\n/** Blank sends nothing; anything else must be a JSON array of `{ toolName, args, output }` mocks. */\nfunction parseToolMocks(raw: string): { toolMocks?: DatasetItemToolMock[] } | { message: string } {\n if (!raw.trim()) return {};\n const parsed = parseJson(raw);\n if (!parsed.ok) return { message: 'Tool mocks must be valid JSON' };\n if (!Array.isArray(parsed.value)) return { message: 'Tool mocks must be a JSON array' };\n if (!parsed.value.every(isToolMock))\n return { message: 'Each tool mock needs a \"toolName\" string and an \"args\" object' };\n return parsed.value.length > 0 ? { toolMocks: parsed.value } : {};\n}\n\nfunction toExpectedStep(row: TrajectoryStepRow, index: number): { step: ExpectedStep } | { message: string } {\n const label = `Step ${index + 1}`;\n const name = row.name.trim();\n if (!name) return { message: `${label} needs a name` };\n\n // Only tool steps have expected args; any other type parses blank and sends none.\n const toolArgs = parseOptionalObject(isToolStepType(row.stepType) ? row.toolArgs : '');\n if (!toolArgs.ok) return { message: `The expected args of ${label.toLowerCase()} must be a JSON object` };\n const args = toolArgs.value ? { toolArgs: toolArgs.value } : {};\n\n // A prefilled row keeps its recorded details; the editor's name and args replace the recorded ones.\n const { recorded } = row;\n if (recorded?.stepType === 'tool_call' || recorded?.stepType === 'mcp_tool_call') {\n const { toolArgs: _recordedArgs, ...details } = recorded;\n return { step: { ...details, name, ...args } };\n }\n if (recorded) return { step: { ...recorded, name } };\n\n if (row.stepType === 'generic') return { step: { name } };\n if (!isToolStepType(row.stepType)) return { step: { name, stepType: row.stepType } };\n return { step: { name, stepType: row.stepType, ...args } };\n}\n\n/** The request body for the dialog, or the first error with the field that owns it. Options that are off are left out. */\nexport function buildAddItemPayload(draft: AddItemDraft): { params: AddItemParams } | { error: AddItemError } {\n
|
|
1
|
+
{"version":3,"file":"build-add-item-payload.es.js","sources":["../../../../../src/domains/datasets/components/add-dataset-item-dialog/build-add-item-payload.ts"],"sourcesContent":["import type { AddDatasetItemParams, DatasetItemToolMock } from '@mastra/client-js';\nimport { isToolStepType } from './trajectory-types';\nimport type { ExpectedStep, TrajectoryOrdering, TrajectoryStepRow } from './trajectory-types';\n\nexport type AddItemField = 'input' | 'groundTruth' | 'toolMocks' | 'requestContext' | 'expectedTrajectory';\n\nexport interface AddItemError {\n field: AddItemField;\n message: string;\n}\n\nexport interface AddItemDraft {\n /** JSON is sent parsed; anything else is sent as plain text. */\n input: string;\n /** Like the input; blank sends nothing. */\n groundTruth: string;\n /** Raw JSON: an ordered array of mocks, sent as written so every mock the runtime supports can be declared. */\n toolMocks: string;\n requestContextEnabled: boolean;\n /** Raw JSON object of values passed to the target. */\n requestContext: string;\n trajectoryEnabled: boolean;\n ordering: TrajectoryOrdering;\n trajectorySteps: TrajectoryStepRow[];\n}\n\nexport type AddItemParams = Omit<AddDatasetItemParams, 'datasetId'>;\n\ntype JsonResult = { ok: true; value: unknown } | { ok: false };\n\nconst parseJson = (raw: string): JsonResult => {\n try {\n return { ok: true, value: JSON.parse(raw) };\n } catch {\n return { ok: false };\n }\n};\n\n/** Text that parses as JSON is sent as that value; any other text is sent as a string. */\nconst parseJsonOrText = (raw: string): unknown => {\n const parsed = parseJson(raw);\n return parsed.ok ? parsed.value : raw;\n};\n\nconst isRecord = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value);\n\n/** Blank sends nothing; anything else must be a JSON object. */\nconst parseOptionalObject = (raw: string): { ok: true; value?: Record<string, unknown> } | { ok: false } => {\n if (!raw.trim()) return { ok: true };\n const parsed = parseJson(raw);\n if (!parsed.ok || !isRecord(parsed.value)) return { ok: false };\n return { ok: true, value: parsed.value };\n};\n\nconst isToolMock = (value: unknown): value is DatasetItemToolMock =>\n isRecord(value) && typeof value.toolName === 'string' && isRecord(value.args);\n\n/** Blank sends nothing; anything else must be a JSON array of `{ toolName, args, output }` mocks. */\nfunction parseToolMocks(raw: string): { toolMocks?: DatasetItemToolMock[] } | { message: string } {\n if (!raw.trim()) return {};\n const parsed = parseJson(raw);\n if (!parsed.ok) return { message: 'Tool mocks must be valid JSON' };\n if (!Array.isArray(parsed.value)) return { message: 'Tool mocks must be a JSON array' };\n if (!parsed.value.every(isToolMock))\n return { message: 'Each tool mock needs a \"toolName\" string and an \"args\" object' };\n return parsed.value.length > 0 ? { toolMocks: parsed.value } : {};\n}\n\nfunction toExpectedStep(row: TrajectoryStepRow, index: number): { step: ExpectedStep } | { message: string } {\n const label = `Step ${index + 1}`;\n const name = row.name.trim();\n if (!name) return { message: `${label} needs a name` };\n\n // Only tool steps have expected args; any other type parses blank and sends none.\n const toolArgs = parseOptionalObject(isToolStepType(row.stepType) ? row.toolArgs : '');\n if (!toolArgs.ok) return { message: `The expected args of ${label.toLowerCase()} must be a JSON object` };\n const args = toolArgs.value ? { toolArgs: toolArgs.value } : {};\n\n // A prefilled row keeps its recorded details; the editor's name and args replace the recorded ones.\n const { recorded } = row;\n if (recorded?.stepType === 'tool_call' || recorded?.stepType === 'mcp_tool_call') {\n const { toolArgs: _recordedArgs, ...details } = recorded;\n return { step: { ...details, name, ...args } };\n }\n if (recorded) return { step: { ...recorded, name } };\n\n if (row.stepType === 'generic') return { step: { name } };\n if (!isToolStepType(row.stepType)) return { step: { name, stepType: row.stepType } };\n return { step: { name, stepType: row.stepType, ...args } };\n}\n\n/** The request body for the dialog, or the first error with the field that owns it. Options that are off are left out. */\nexport function buildAddItemPayload(draft: AddItemDraft): { params: AddItemParams } | { error: AddItemError } {\n if (!draft.input.trim()) return { error: { field: 'input', message: 'Input is required' } };\n const params: AddItemParams = { input: parseJsonOrText(draft.input) };\n\n if (draft.groundTruth.trim()) params.groundTruth = parseJsonOrText(draft.groundTruth);\n\n const toolMocks = parseToolMocks(draft.toolMocks);\n if ('message' in toolMocks) return { error: { field: 'toolMocks', message: toolMocks.message } };\n if (toolMocks.toolMocks) params.toolMocks = toolMocks.toolMocks;\n\n if (draft.requestContextEnabled) {\n const requestContext = parseOptionalObject(draft.requestContext);\n if (!requestContext.ok)\n return { error: { field: 'requestContext', message: 'Request context must be a JSON object' } };\n if (requestContext.value) params.requestContext = requestContext.value;\n }\n\n if (draft.trajectoryEnabled && draft.trajectorySteps.length > 0) {\n const steps: ExpectedStep[] = [];\n for (const [index, row] of draft.trajectorySteps.entries()) {\n const result = toExpectedStep(row, index);\n if ('message' in result) return { error: { field: 'expectedTrajectory', message: result.message } };\n steps.push(result.step);\n }\n params.expectedTrajectory = { ordering: draft.ordering, steps };\n }\n\n return { params };\n}\n"],"names":[],"mappings":"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"}
|
package/dist/domains/datasets/components/add-dataset-item-dialog/collapsible-settings-row.cjs.js
CHANGED
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
5
5
|
const jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
const collapsible = require('../../../../collapsible-pzbQxp_4.cjs');
|
|
7
7
|
const _switch = require('../../../../switch-BneGp2rM.cjs');
|
|
8
|
-
const settingsRow = require('../../../../settings-row-
|
|
8
|
+
const settingsRow = require('../../../../settings-row-C9lT2BJS.cjs');
|
|
9
9
|
|
|
10
10
|
function CollapsibleSettingsRow({
|
|
11
11
|
label,
|
package/dist/domains/datasets/components/add-dataset-item-dialog/collapsible-settings-row.es.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { C as Collapsible, a as CollapsibleContent } from '../../../../collapsible-BqerB7is.js';
|
|
3
3
|
import { S as Switch } from '../../../../switch-0YXP015P.js';
|
|
4
|
-
import { S as SettingsRow } from '../../../../settings-row-
|
|
4
|
+
import { S as SettingsRow } from '../../../../settings-row-CRpU1an-.js';
|
|
5
5
|
|
|
6
6
|
function CollapsibleSettingsRow({
|
|
7
7
|
label,
|
package/dist/domains/datasets/components/add-dataset-item-dialog/dataset-field-errors.cjs.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
4
|
|
|
5
5
|
const jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
const field = require('../../../../field-
|
|
6
|
+
const field = require('../../../../field-CZ5fldpM.cjs');
|
|
7
7
|
require('../../../../field-control-aria-WzMGs0A4.cjs');
|
|
8
8
|
|
|
9
9
|
function DatasetFieldErrors({ field: field$1, errors }) {
|