@mastra/playground-ui 37.0.1-alpha.2 → 37.1.0-alpha.4
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/CHANGELOG.md +28 -0
- package/dist/Avatar-BjYaEMp7.cjs +44 -0
- package/dist/Avatar-BjYaEMp7.cjs.map +1 -0
- package/dist/Avatar-C4iB6och.js +42 -0
- package/dist/Avatar-C4iB6och.js.map +1 -0
- package/dist/Badge-Ba_ltDdC.js +55 -0
- package/dist/Badge-Ba_ltDdC.js.map +1 -0
- package/dist/Badge-Cwp7HH1E.cjs +57 -0
- package/dist/Badge-Cwp7HH1E.cjs.map +1 -0
- package/dist/Breadcrumb-Bo79EXXr.js +34 -0
- package/dist/Breadcrumb-Bo79EXXr.js.map +1 -0
- package/dist/Breadcrumb-OaOfQ2cJ.cjs +37 -0
- package/dist/Breadcrumb-OaOfQ2cJ.cjs.map +1 -0
- package/dist/Button-66ghjQV8.cjs +108 -0
- package/dist/Button-66ghjQV8.cjs.map +1 -0
- package/dist/Button-Bq0VuEbC.js +105 -0
- package/dist/Button-Bq0VuEbC.js.map +1 -0
- package/dist/ErrorBoundary-Bsn4TF3z.js +154 -0
- package/dist/ErrorBoundary-Bsn4TF3z.js.map +1 -0
- package/dist/ErrorBoundary-DB5pfcAb.cjs +175 -0
- package/dist/ErrorBoundary-DB5pfcAb.cjs.map +1 -0
- package/dist/Notice-CiS1Dv3i.js +89 -0
- package/dist/Notice-CiS1Dv3i.js.map +1 -0
- package/dist/Notice-h63wsfzJ.cjs +91 -0
- package/dist/Notice-h63wsfzJ.cjs.map +1 -0
- package/dist/SessionExpired-Di89Q6es.js +45 -0
- package/dist/SessionExpired-Di89Q6es.js.map +1 -0
- package/dist/SessionExpired-PEHQGxqm.cjs +47 -0
- package/dist/SessionExpired-PEHQGxqm.cjs.map +1 -0
- package/dist/alert-dialog-B12mCQ0m.js +99 -0
- package/dist/alert-dialog-B12mCQ0m.js.map +1 -0
- package/dist/alert-dialog-C2_Vo4Cl.cjs +120 -0
- package/dist/alert-dialog-C2_Vo4Cl.cjs.map +1 -0
- package/dist/buttons-group-C0fJastT.cjs +185 -0
- package/dist/buttons-group-C0fJastT.cjs.map +1 -0
- package/dist/buttons-group-b6an6uao.js +161 -0
- package/dist/buttons-group-b6an6uao.js.map +1 -0
- package/dist/checkbox-CgdQc_vN.cjs +109 -0
- package/dist/checkbox-CgdQc_vN.cjs.map +1 -0
- package/dist/checkbox-Cot1EjeD.js +88 -0
- package/dist/checkbox-Cot1EjeD.js.map +1 -0
- package/dist/code-block-C3VKeb3t.js +84 -0
- package/dist/code-block-C3VKeb3t.js.map +1 -0
- package/dist/code-block-Cuj8dH9p.cjs +86 -0
- package/dist/code-block-Cuj8dH9p.cjs.map +1 -0
- package/dist/code-editor-BoBPNQhp.js +441 -0
- package/dist/code-editor-BoBPNQhp.js.map +1 -0
- package/dist/code-editor-DYfn9l8p.cjs +449 -0
- package/dist/code-editor-DYfn9l8p.cjs.map +1 -0
- package/dist/collapsible-CCV0eLl-.cjs +61 -0
- package/dist/collapsible-CCV0eLl-.cjs.map +1 -0
- package/dist/collapsible-CwP9t1xW.js +57 -0
- package/dist/collapsible-CwP9t1xW.js.map +1 -0
- package/dist/combobox-BceHZZ5n.js +223 -0
- package/dist/combobox-BceHZZ5n.js.map +1 -0
- package/dist/combobox-C3eqvELk.cjs +245 -0
- package/dist/combobox-C3eqvELk.cjs.map +1 -0
- package/dist/command-C9pUyBEf.cjs +194 -0
- package/dist/command-C9pUyBEf.cjs.map +1 -0
- package/dist/command-h1VbHGY1.js +165 -0
- package/dist/command-h1VbHGY1.js.map +1 -0
- package/dist/components/AlertDialog.cjs.js +1 -1
- package/dist/components/AlertDialog.es.js +1 -1
- package/dist/components/Avatar.cjs.js +1 -1
- package/dist/components/Avatar.es.js +1 -1
- package/dist/components/Badge.cjs.js +1 -1
- package/dist/components/Badge.es.js +1 -1
- package/dist/components/Breadcrumb.cjs.js +1 -1
- package/dist/components/Breadcrumb.es.js +1 -1
- package/dist/components/Button.cjs.js +1 -1
- package/dist/components/Button.es.js +1 -1
- package/dist/components/ButtonsGroup.cjs.js +1 -1
- package/dist/components/ButtonsGroup.es.js +1 -1
- package/dist/components/Checkbox.cjs.js +1 -1
- package/dist/components/Checkbox.es.js +1 -1
- package/dist/components/CodeBlock.cjs.js +1 -1
- package/dist/components/CodeBlock.es.js +1 -1
- package/dist/components/CodeEditor.cjs.js +1 -1
- package/dist/components/CodeEditor.es.js +1 -1
- package/dist/components/Collapsible.cjs.js +1 -1
- package/dist/components/Collapsible.es.js +1 -1
- package/dist/components/Columns.cjs.js +1 -1
- package/dist/components/Columns.es.js +1 -1
- package/dist/components/Combobox.cjs.js +1 -1
- package/dist/components/Combobox.es.js +1 -1
- package/dist/components/Command.cjs.js +1 -1
- package/dist/components/Command.es.js +1 -1
- package/dist/components/CopyButton.cjs.js +1 -1
- package/dist/components/CopyButton.es.js +1 -1
- package/dist/components/DataCodeSection.cjs.js +1 -1
- package/dist/components/DataCodeSection.es.js +1 -1
- package/dist/components/DataDetailsPanel.cjs.js +3 -3
- package/dist/components/DataDetailsPanel.es.js +3 -3
- package/dist/components/DataFilter.cjs.js +1 -1
- package/dist/components/DataFilter.es.js +1 -1
- package/dist/components/DataList.cjs.js +5 -4
- package/dist/components/DataList.cjs.js.map +1 -1
- package/dist/components/DataList.es.js +4 -3
- 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 +2 -2
- package/dist/components/DateTimePicker.es.js +2 -2
- package/dist/components/DateTimeRangePicker.cjs.js +1 -1
- package/dist/components/DateTimeRangePicker.es.js +1 -1
- package/dist/components/Dialog.cjs.js +1 -1
- package/dist/components/Dialog.es.js +1 -1
- package/dist/components/Drawer.cjs.js +1 -1
- package/dist/components/Drawer.es.js +1 -1
- package/dist/components/DropdownMenu.cjs.js +1 -1
- package/dist/components/DropdownMenu.es.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.cjs.js +1 -1
- package/dist/components/EnvironmentVariablesEditor.es.js +1 -1
- package/dist/components/ErrorBoundary.cjs.js +1 -1
- package/dist/components/ErrorBoundary.es.js +1 -1
- package/dist/components/FormFieldBlocks.cjs.js +3 -3
- package/dist/components/FormFieldBlocks.es.js +3 -3
- package/dist/components/Input.cjs.js +1 -1
- package/dist/components/Input.es.js +1 -1
- package/dist/components/InputGroup.cjs.js +1 -1
- package/dist/components/InputGroup.es.js +1 -1
- package/dist/components/ItemList.cjs.js +1 -1
- package/dist/components/ItemList.es.js +1 -1
- package/dist/components/JSONSchemaForm.cjs.js +4 -4
- package/dist/components/JSONSchemaForm.es.js +4 -4
- 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 +2 -2
- package/dist/components/LogsDataList.es.js +2 -2
- package/dist/components/MainSidebar.cjs.js +1 -1
- package/dist/components/MainSidebar.es.js +1 -1
- package/dist/components/MarkdownRenderer.cjs.js +1 -1
- package/dist/components/MarkdownRenderer.es.js +1 -1
- package/dist/components/Notice.cjs.js +1 -1
- package/dist/components/Notice.es.js +1 -1
- package/dist/components/Popover.cjs.js +1 -1
- package/dist/components/Popover.es.js +1 -1
- package/dist/components/PrevNextNav.cjs.js +2 -2
- package/dist/components/PrevNextNav.es.js +2 -2
- package/dist/components/PropertyFilter.cjs.js +5 -4
- package/dist/components/PropertyFilter.cjs.js.map +1 -1
- package/dist/components/PropertyFilter.es.js +2 -1
- package/dist/components/PropertyFilter.es.js.map +1 -1
- package/dist/components/RadioGroup.cjs.js +1 -1
- package/dist/components/RadioGroup.es.js +1 -1
- package/dist/components/RuleBuilder.cjs.js +1 -1
- package/dist/components/RuleBuilder.es.js +1 -1
- package/dist/components/Searchbar.cjs.js +1 -1
- package/dist/components/Searchbar.es.js +1 -1
- package/dist/components/Select.cjs.js +1 -1
- package/dist/components/Select.es.js +1 -1
- package/dist/components/SessionExpired.cjs.js +1 -1
- package/dist/components/SessionExpired.es.js +1 -1
- package/dist/components/SideDialog.cjs.js +8 -8
- package/dist/components/SideDialog.cjs.js.map +1 -1
- package/dist/components/SideDialog.es.js +6 -6
- package/dist/components/Steps.cjs.js +1 -1
- package/dist/components/Steps.es.js +1 -1
- package/dist/components/Tabs.cjs.js +2 -2
- package/dist/components/Tabs.es.js +2 -2
- package/dist/components/Textarea.cjs.js +1 -1
- package/dist/components/Textarea.es.js +1 -1
- package/dist/components/ThemeToggle.cjs.js +1 -1
- package/dist/components/ThemeToggle.es.js +1 -1
- package/dist/components/ThreadList.cjs.js +1 -1
- package/dist/components/ThreadList.es.js +1 -1
- package/dist/components/Tree.cjs.js +1 -1
- package/dist/components/Tree.es.js +1 -1
- package/dist/components/Truncate.cjs.js +1 -1
- package/dist/components/Truncate.es.js +1 -1
- package/dist/copy-button-CJjjhHKN.js +44 -0
- package/dist/copy-button-CJjjhHKN.js.map +1 -0
- package/dist/copy-button-DN9mi_LV.cjs +46 -0
- package/dist/copy-button-DN9mi_LV.cjs.map +1 -0
- package/dist/data-code-section-0bn3tNrE.cjs +335 -0
- package/dist/data-code-section-0bn3tNrE.cjs.map +1 -0
- package/dist/data-code-section-4YyicSye.js +332 -0
- package/dist/data-code-section-4YyicSye.js.map +1 -0
- package/dist/data-list-D5uItcj6.js +110 -0
- package/dist/data-list-D5uItcj6.js.map +1 -0
- package/dist/data-list-DDQRmA6L.cjs +112 -0
- package/dist/data-list-DDQRmA6L.cjs.map +1 -0
- package/dist/data-list-row-wrapper-BGI6fq0a.cjs +61 -0
- package/dist/data-list-row-wrapper-BGI6fq0a.cjs.map +1 -0
- package/dist/data-list-row-wrapper-BLuze8Kz.js +58 -0
- package/dist/data-list-row-wrapper-BLuze8Kz.js.map +1 -0
- package/dist/data-list-skeleton-Du8Lshzl.cjs +32 -0
- package/dist/data-list-skeleton-Du8Lshzl.cjs.map +1 -0
- package/dist/data-list-skeleton-DuoPJD5w.js +30 -0
- package/dist/data-list-skeleton-DuoPJD5w.js.map +1 -0
- package/dist/data-list-subheading-BOq190dz.cjs +32 -0
- package/dist/data-list-subheading-BOq190dz.cjs.map +1 -0
- package/dist/data-list-subheading-DzU_t0V0.js +29 -0
- package/dist/data-list-subheading-DzU_t0V0.js.map +1 -0
- package/dist/data-list-top-cell-B27jd1HH.js +462 -0
- package/dist/data-list-top-cell-B27jd1HH.js.map +1 -0
- package/dist/data-list-top-cell-DummeYkE.cjs +491 -0
- package/dist/data-list-top-cell-DummeYkE.cjs.map +1 -0
- package/dist/data-panel-BxX4ohtd.js +87 -0
- package/dist/data-panel-BxX4ohtd.js.map +1 -0
- package/dist/data-panel-D7TbjekV.cjs +89 -0
- package/dist/data-panel-D7TbjekV.cjs.map +1 -0
- package/dist/date-time-picker-BJ5oHVVP.js +245 -0
- package/dist/date-time-picker-BJ5oHVVP.js.map +1 -0
- package/dist/date-time-picker-V8b9fyim.cjs +268 -0
- package/dist/date-time-picker-V8b9fyim.cjs.map +1 -0
- package/dist/date-time-range-picker-BL2NxcTo.js +168 -0
- package/dist/date-time-range-picker-BL2NxcTo.js.map +1 -0
- package/dist/date-time-range-picker-DY3GLaiu.cjs +170 -0
- package/dist/date-time-range-picker-DY3GLaiu.cjs.map +1 -0
- package/dist/dialog-D8GU9T3e.cjs +107 -0
- package/dist/dialog-D8GU9T3e.cjs.map +1 -0
- package/dist/dialog-ki0o-LSD.js +76 -0
- package/dist/dialog-ki0o-LSD.js.map +1 -0
- package/dist/domains/logs/components/log-details-view.cjs.js +131 -0
- package/dist/domains/logs/components/log-details-view.cjs.js.map +1 -0
- package/dist/domains/logs/components/log-details-view.d.ts +2 -0
- package/dist/domains/logs/components/log-details-view.es.js +127 -0
- package/dist/domains/logs/components/log-details-view.es.js.map +1 -0
- package/dist/domains/logs/components/logs-error-content.cjs.js +31 -0
- package/dist/domains/logs/components/logs-error-content.cjs.js.map +1 -0
- package/dist/domains/logs/components/logs-error-content.d.ts +2 -0
- package/dist/domains/logs/components/logs-error-content.es.js +27 -0
- package/dist/domains/logs/components/logs-error-content.es.js.map +1 -0
- package/dist/domains/logs/components/logs-layout.cjs.js +36 -0
- package/dist/domains/logs/components/logs-layout.cjs.js.map +1 -0
- package/dist/domains/logs/components/logs-layout.d.ts +2 -0
- package/dist/domains/logs/components/logs-layout.es.js +32 -0
- package/dist/domains/logs/components/logs-layout.es.js.map +1 -0
- package/dist/domains/logs/components/logs-list-view.cjs.js +96 -0
- package/dist/domains/logs/components/logs-list-view.cjs.js.map +1 -0
- package/dist/domains/logs/components/logs-list-view.d.ts +2 -0
- package/dist/domains/logs/components/logs-list-view.es.js +92 -0
- package/dist/domains/logs/components/logs-list-view.es.js.map +1 -0
- package/dist/domains/logs/components/logs-toolbar.cjs.js +62 -0
- package/dist/domains/logs/components/logs-toolbar.cjs.js.map +1 -0
- package/dist/domains/logs/components/logs-toolbar.d.ts +2 -0
- package/dist/domains/logs/components/logs-toolbar.es.js +58 -0
- package/dist/domains/logs/components/logs-toolbar.es.js.map +1 -0
- package/dist/domains/logs/components/no-logs-info.cjs.js +71 -0
- package/dist/domains/logs/components/no-logs-info.cjs.js.map +1 -0
- package/dist/domains/logs/components/no-logs-info.d.ts +2 -0
- package/dist/domains/logs/components/no-logs-info.es.js +67 -0
- package/dist/domains/logs/components/no-logs-info.es.js.map +1 -0
- package/dist/domains/logs/components.cjs.js +20 -0
- package/dist/domains/logs/components.cjs.js.map +1 -0
- package/dist/domains/logs/components.d.ts +2 -0
- package/dist/domains/logs/components.es.js +7 -0
- package/dist/domains/logs/components.es.js.map +1 -0
- package/dist/domains/logs/hooks/use-logs-filter-persistence.cjs.js +49 -0
- package/dist/domains/logs/hooks/use-logs-filter-persistence.cjs.js.map +1 -0
- package/dist/domains/logs/hooks/use-logs-filter-persistence.d.ts +2 -0
- package/dist/domains/logs/hooks/use-logs-filter-persistence.es.js +45 -0
- package/dist/domains/logs/hooks/use-logs-filter-persistence.es.js.map +1 -0
- package/dist/domains/logs/hooks/use-logs-list-navigation.cjs.js +85 -0
- package/dist/domains/logs/hooks/use-logs-list-navigation.cjs.js.map +1 -0
- package/dist/domains/logs/hooks/use-logs-list-navigation.d.ts +2 -0
- package/dist/domains/logs/hooks/use-logs-list-navigation.es.js +81 -0
- package/dist/domains/logs/hooks/use-logs-list-navigation.es.js.map +1 -0
- package/dist/domains/logs/hooks/use-logs-url-state.cjs.js +198 -0
- package/dist/domains/logs/hooks/use-logs-url-state.cjs.js.map +1 -0
- package/dist/domains/logs/hooks/use-logs-url-state.d.ts +2 -0
- package/dist/domains/logs/hooks/use-logs-url-state.es.js +194 -0
- package/dist/domains/logs/hooks/use-logs-url-state.es.js.map +1 -0
- package/dist/domains/logs/hooks/use-logs.cjs.js +65 -0
- package/dist/domains/logs/hooks/use-logs.cjs.js.map +1 -0
- package/dist/domains/logs/hooks/use-logs.d.ts +2 -0
- package/dist/domains/logs/hooks/use-logs.es.js +60 -0
- package/dist/domains/logs/hooks/use-logs.es.js.map +1 -0
- package/dist/domains/logs/hooks.cjs.js +16 -0
- package/dist/domains/logs/hooks.cjs.js.map +1 -0
- package/dist/domains/logs/hooks.d.ts +2 -0
- package/dist/domains/logs/hooks.es.js +5 -0
- package/dist/domains/logs/hooks.es.js.map +1 -0
- package/dist/domains/logs/log-filters.cjs.js +356 -0
- package/dist/domains/logs/log-filters.cjs.js.map +1 -0
- package/dist/domains/logs/log-filters.d.ts +2 -0
- package/dist/domains/logs/log-filters.es.js +331 -0
- package/dist/domains/logs/log-filters.es.js.map +1 -0
- package/dist/domains/logs/types.cjs.js +3 -0
- package/dist/domains/logs/types.cjs.js.map +1 -0
- package/dist/domains/logs/types.d.ts +1 -0
- package/dist/domains/logs/types.es.js +2 -0
- package/dist/domains/logs/types.es.js.map +1 -0
- package/dist/domains/logs.cjs.js +51 -0
- package/dist/domains/logs.cjs.js.map +1 -0
- package/dist/domains/logs.d.ts +2 -0
- package/dist/domains/logs.es.js +12 -0
- package/dist/domains/logs.es.js.map +1 -0
- package/dist/domains/memory/components/flame-graph.cjs.js +479 -0
- package/dist/domains/memory/components/flame-graph.cjs.js.map +1 -0
- package/dist/domains/memory/components/flame-graph.d.ts +2 -0
- package/dist/domains/memory/components/flame-graph.es.js +475 -0
- package/dist/domains/memory/components/flame-graph.es.js.map +1 -0
- package/dist/domains/memory/components/memory-studio-panel.cjs.js +107 -0
- package/dist/domains/memory/components/memory-studio-panel.cjs.js.map +1 -0
- package/dist/domains/memory/components/memory-studio-panel.d.ts +2 -0
- package/dist/domains/memory/components/memory-studio-panel.es.js +103 -0
- package/dist/domains/memory/components/memory-studio-panel.es.js.map +1 -0
- package/dist/domains/memory/components/observation-detail-view.cjs.js +232 -0
- package/dist/domains/memory/components/observation-detail-view.cjs.js.map +1 -0
- package/dist/domains/memory/components/observation-detail-view.d.ts +2 -0
- package/dist/domains/memory/components/observation-detail-view.es.js +228 -0
- package/dist/domains/memory/components/observation-detail-view.es.js.map +1 -0
- package/dist/domains/memory/components/thread-context-progress-utils.cjs.js +14 -0
- package/dist/domains/memory/components/thread-context-progress-utils.cjs.js.map +1 -0
- package/dist/domains/memory/components/thread-context-progress-utils.d.ts +2 -0
- package/dist/domains/memory/components/thread-context-progress-utils.es.js +10 -0
- package/dist/domains/memory/components/thread-context-progress-utils.es.js.map +1 -0
- package/dist/domains/memory/components/thread-context-progress.cjs.js +48 -0
- package/dist/domains/memory/components/thread-context-progress.cjs.js.map +1 -0
- package/dist/domains/memory/components/thread-context-progress.d.ts +2 -0
- package/dist/domains/memory/components/thread-context-progress.es.js +44 -0
- package/dist/domains/memory/components/thread-context-progress.es.js.map +1 -0
- package/dist/domains/memory/components.cjs.js +16 -0
- package/dist/domains/memory/components.cjs.js.map +1 -0
- package/dist/domains/memory/components.d.ts +2 -0
- package/dist/domains/memory/components.es.js +5 -0
- package/dist/domains/memory/components.es.js.map +1 -0
- package/dist/domains/memory/hooks/use-memory-status.cjs.js +22 -0
- package/dist/domains/memory/hooks/use-memory-status.cjs.js.map +1 -0
- package/dist/domains/memory/hooks/use-memory-status.d.ts +2 -0
- package/dist/domains/memory/hooks/use-memory-status.es.js +17 -0
- package/dist/domains/memory/hooks/use-memory-status.es.js.map +1 -0
- package/dist/domains/memory/hooks/use-memory-thread-messages.cjs.js +22 -0
- package/dist/domains/memory/hooks/use-memory-thread-messages.cjs.js.map +1 -0
- package/dist/domains/memory/hooks/use-memory-thread-messages.d.ts +2 -0
- package/dist/domains/memory/hooks/use-memory-thread-messages.es.js +17 -0
- package/dist/domains/memory/hooks/use-memory-thread-messages.es.js.map +1 -0
- package/dist/domains/memory/hooks/use-observational-memory.cjs.js +24 -0
- package/dist/domains/memory/hooks/use-observational-memory.cjs.js.map +1 -0
- package/dist/domains/memory/hooks/use-observational-memory.d.ts +2 -0
- package/dist/domains/memory/hooks/use-observational-memory.es.js +19 -0
- package/dist/domains/memory/hooks/use-observational-memory.es.js.map +1 -0
- package/dist/domains/memory/hooks.cjs.js +17 -0
- package/dist/domains/memory/hooks.cjs.js.map +1 -0
- package/dist/domains/memory/hooks.d.ts +2 -0
- package/dist/domains/memory/hooks.es.js +4 -0
- package/dist/domains/memory/hooks.es.js.map +1 -0
- package/dist/domains/memory/lib/extract-markers.cjs.js +96 -0
- package/dist/domains/memory/lib/extract-markers.cjs.js.map +1 -0
- package/dist/domains/memory/lib/extract-markers.d.ts +2 -0
- package/dist/domains/memory/lib/extract-markers.es.js +92 -0
- package/dist/domains/memory/lib/extract-markers.es.js.map +1 -0
- package/dist/domains/memory/lib/replay-selection.cjs.js +35 -0
- package/dist/domains/memory/lib/replay-selection.cjs.js.map +1 -0
- package/dist/domains/memory/lib/replay-selection.d.ts +2 -0
- package/dist/domains/memory/lib/replay-selection.es.js +28 -0
- package/dist/domains/memory/lib/replay-selection.es.js.map +1 -0
- package/dist/domains/memory/lib/thread-context-window-state.cjs.js +31 -0
- package/dist/domains/memory/lib/thread-context-window-state.cjs.js.map +1 -0
- package/dist/domains/memory/lib/thread-context-window-state.d.ts +2 -0
- package/dist/domains/memory/lib/thread-context-window-state.es.js +27 -0
- package/dist/domains/memory/lib/thread-context-window-state.es.js.map +1 -0
- package/dist/domains/memory/lib/timeline.cjs.js +42 -0
- package/dist/domains/memory/lib/timeline.cjs.js.map +1 -0
- package/dist/domains/memory/lib/timeline.d.ts +2 -0
- package/dist/domains/memory/lib/timeline.es.js +34 -0
- package/dist/domains/memory/lib/timeline.es.js.map +1 -0
- package/dist/domains/memory/types.cjs.js +3 -0
- package/dist/domains/memory/types.cjs.js.map +1 -0
- package/dist/domains/memory/types.d.ts +2 -0
- package/dist/domains/memory/types.es.js +2 -0
- package/dist/domains/memory/types.es.js.map +1 -0
- package/dist/domains/memory.cjs.js +25 -0
- package/dist/domains/memory.cjs.js.map +1 -0
- package/dist/domains/memory.d.ts +2 -0
- package/dist/domains/memory.es.js +8 -0
- package/dist/domains/memory.es.js.map +1 -0
- package/dist/domains/metrics/components/bar-list.cjs.js +119 -0
- package/dist/domains/metrics/components/bar-list.cjs.js.map +1 -0
- package/dist/domains/metrics/components/bar-list.d.ts +2 -0
- package/dist/domains/metrics/components/bar-list.es.js +114 -0
- package/dist/domains/metrics/components/bar-list.es.js.map +1 -0
- package/dist/domains/metrics/components/card-action-buttons.cjs.js +40 -0
- package/dist/domains/metrics/components/card-action-buttons.cjs.js.map +1 -0
- package/dist/domains/metrics/components/card-action-buttons.d.ts +2 -0
- package/dist/domains/metrics/components/card-action-buttons.es.js +35 -0
- package/dist/domains/metrics/components/card-action-buttons.es.js.map +1 -0
- package/dist/domains/metrics/components/date-range-selector.cjs.js +79 -0
- package/dist/domains/metrics/components/date-range-selector.cjs.js.map +1 -0
- package/dist/domains/metrics/components/date-range-selector.d.ts +2 -0
- package/dist/domains/metrics/components/date-range-selector.es.js +75 -0
- package/dist/domains/metrics/components/date-range-selector.es.js.map +1 -0
- package/dist/domains/metrics/components/kpi-card-view.cjs.js +18 -0
- package/dist/domains/metrics/components/kpi-card-view.cjs.js.map +1 -0
- package/dist/domains/metrics/components/kpi-card-view.d.ts +2 -0
- package/dist/domains/metrics/components/kpi-card-view.es.js +14 -0
- package/dist/domains/metrics/components/kpi-card-view.es.js.map +1 -0
- package/dist/domains/metrics/components/latency-card-view.cjs.js +105 -0
- package/dist/domains/metrics/components/latency-card-view.cjs.js.map +1 -0
- package/dist/domains/metrics/components/latency-card-view.d.ts +2 -0
- package/dist/domains/metrics/components/latency-card-view.es.js +101 -0
- package/dist/domains/metrics/components/latency-card-view.es.js.map +1 -0
- package/dist/domains/metrics/components/memory-card-view.cjs.js +103 -0
- package/dist/domains/metrics/components/memory-card-view.cjs.js.map +1 -0
- package/dist/domains/metrics/components/memory-card-view.d.ts +2 -0
- package/dist/domains/metrics/components/memory-card-view.es.js +99 -0
- package/dist/domains/metrics/components/memory-card-view.es.js.map +1 -0
- package/dist/domains/metrics/components/metrics-utils.cjs.js +39 -0
- package/dist/domains/metrics/components/metrics-utils.cjs.js.map +1 -0
- package/dist/domains/metrics/components/metrics-utils.d.ts +2 -0
- package/dist/domains/metrics/components/metrics-utils.es.js +32 -0
- package/dist/domains/metrics/components/metrics-utils.es.js.map +1 -0
- package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js +68 -0
- package/dist/domains/metrics/components/model-usage-cost-card-view.cjs.js.map +1 -0
- package/dist/domains/metrics/components/model-usage-cost-card-view.d.ts +2 -0
- package/dist/domains/metrics/components/model-usage-cost-card-view.es.js +64 -0
- package/dist/domains/metrics/components/model-usage-cost-card-view.es.js.map +1 -0
- package/dist/domains/metrics/components/scores-card-view.cjs.js +65 -0
- package/dist/domains/metrics/components/scores-card-view.cjs.js.map +1 -0
- package/dist/domains/metrics/components/scores-card-view.d.ts +2 -0
- package/dist/domains/metrics/components/scores-card-view.es.js +61 -0
- package/dist/domains/metrics/components/scores-card-view.es.js.map +1 -0
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js +94 -0
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.cjs.js.map +1 -0
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.d.ts +2 -0
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js +90 -0
- package/dist/domains/metrics/components/token-usage-by-agent-card-view.es.js.map +1 -0
- package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js +92 -0
- package/dist/domains/metrics/components/token-usage-timeline-card-view.cjs.js.map +1 -0
- package/dist/domains/metrics/components/token-usage-timeline-card-view.d.ts +2 -0
- package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js +88 -0
- package/dist/domains/metrics/components/token-usage-timeline-card-view.es.js.map +1 -0
- package/dist/domains/metrics/components/traces-volume-card-view.cjs.js +116 -0
- package/dist/domains/metrics/components/traces-volume-card-view.cjs.js.map +1 -0
- package/dist/domains/metrics/components/traces-volume-card-view.d.ts +2 -0
- package/dist/domains/metrics/components/traces-volume-card-view.es.js +112 -0
- package/dist/domains/metrics/components/traces-volume-card-view.es.js.map +1 -0
- package/dist/domains/metrics/components.cjs.js +36 -0
- package/dist/domains/metrics/components.cjs.js.map +1 -0
- package/dist/domains/metrics/components.d.ts +2 -0
- package/dist/domains/metrics/components.es.js +13 -0
- package/dist/domains/metrics/components.es.js.map +1 -0
- package/dist/domains/metrics/drilldown.cjs.js +141 -0
- package/dist/domains/metrics/drilldown.cjs.js.map +1 -0
- package/dist/domains/metrics/drilldown.d.ts +2 -0
- package/dist/domains/metrics/drilldown.es.js +135 -0
- package/dist/domains/metrics/drilldown.es.js.map +1 -0
- package/dist/domains/metrics/hooks/use-active-resources-kpi-metrics.cjs.js +25 -0
- package/dist/domains/metrics/hooks/use-active-resources-kpi-metrics.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks/use-active-resources-kpi-metrics.d.ts +2 -0
- package/dist/domains/metrics/hooks/use-active-resources-kpi-metrics.es.js +21 -0
- package/dist/domains/metrics/hooks/use-active-resources-kpi-metrics.es.js.map +1 -0
- package/dist/domains/metrics/hooks/use-active-threads-kpi-metrics.cjs.js +25 -0
- package/dist/domains/metrics/hooks/use-active-threads-kpi-metrics.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks/use-active-threads-kpi-metrics.d.ts +2 -0
- package/dist/domains/metrics/hooks/use-active-threads-kpi-metrics.es.js +21 -0
- package/dist/domains/metrics/hooks/use-active-threads-kpi-metrics.es.js.map +1 -0
- package/dist/domains/metrics/hooks/use-agent-runs-kpi-metrics.cjs.js +24 -0
- package/dist/domains/metrics/hooks/use-agent-runs-kpi-metrics.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks/use-agent-runs-kpi-metrics.d.ts +2 -0
- package/dist/domains/metrics/hooks/use-agent-runs-kpi-metrics.es.js +20 -0
- package/dist/domains/metrics/hooks/use-agent-runs-kpi-metrics.es.js.map +1 -0
- package/dist/domains/metrics/hooks/use-drilldown.cjs.js +48 -0
- package/dist/domains/metrics/hooks/use-drilldown.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks/use-drilldown.d.ts +2 -0
- package/dist/domains/metrics/hooks/use-drilldown.es.js +44 -0
- package/dist/domains/metrics/hooks/use-drilldown.es.js.map +1 -0
- package/dist/domains/metrics/hooks/use-latency-metrics.cjs.js +50 -0
- package/dist/domains/metrics/hooks/use-latency-metrics.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks/use-latency-metrics.d.ts +2 -0
- package/dist/domains/metrics/hooks/use-latency-metrics.es.js +45 -0
- package/dist/domains/metrics/hooks/use-latency-metrics.es.js.map +1 -0
- package/dist/domains/metrics/hooks/use-metrics-filters.cjs.js +46 -0
- package/dist/domains/metrics/hooks/use-metrics-filters.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks/use-metrics-filters.d.ts +2 -0
- package/dist/domains/metrics/hooks/use-metrics-filters.es.js +42 -0
- package/dist/domains/metrics/hooks/use-metrics-filters.es.js.map +1 -0
- package/dist/domains/metrics/hooks/use-metrics.cjs.js +105 -0
- package/dist/domains/metrics/hooks/use-metrics.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks/use-metrics.d.ts +2 -0
- package/dist/domains/metrics/hooks/use-metrics.es.js +97 -0
- package/dist/domains/metrics/hooks/use-metrics.es.js.map +1 -0
- package/dist/domains/metrics/hooks/use-model-cost-kpi-metrics.cjs.js +32 -0
- package/dist/domains/metrics/hooks/use-model-cost-kpi-metrics.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks/use-model-cost-kpi-metrics.d.ts +2 -0
- package/dist/domains/metrics/hooks/use-model-cost-kpi-metrics.es.js +28 -0
- package/dist/domains/metrics/hooks/use-model-cost-kpi-metrics.es.js.map +1 -0
- package/dist/domains/metrics/hooks/use-model-usage-cost-metrics.cjs.js +81 -0
- package/dist/domains/metrics/hooks/use-model-usage-cost-metrics.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks/use-model-usage-cost-metrics.d.ts +2 -0
- package/dist/domains/metrics/hooks/use-model-usage-cost-metrics.es.js +77 -0
- package/dist/domains/metrics/hooks/use-model-usage-cost-metrics.es.js.map +1 -0
- package/dist/domains/metrics/hooks/use-scores-metrics.cjs.js +102 -0
- package/dist/domains/metrics/hooks/use-scores-metrics.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks/use-scores-metrics.d.ts +2 -0
- package/dist/domains/metrics/hooks/use-scores-metrics.es.js +98 -0
- package/dist/domains/metrics/hooks/use-scores-metrics.es.js.map +1 -0
- package/dist/domains/metrics/hooks/use-token-usage-by-agent-metrics.cjs.js +63 -0
- package/dist/domains/metrics/hooks/use-token-usage-by-agent-metrics.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks/use-token-usage-by-agent-metrics.d.ts +2 -0
- package/dist/domains/metrics/hooks/use-token-usage-by-agent-metrics.es.js +59 -0
- package/dist/domains/metrics/hooks/use-token-usage-by-agent-metrics.es.js.map +1 -0
- package/dist/domains/metrics/hooks/use-token-usage-timeseries.cjs.js +88 -0
- package/dist/domains/metrics/hooks/use-token-usage-timeseries.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks/use-token-usage-timeseries.d.ts +2 -0
- package/dist/domains/metrics/hooks/use-token-usage-timeseries.es.js +84 -0
- package/dist/domains/metrics/hooks/use-token-usage-timeseries.es.js.map +1 -0
- package/dist/domains/metrics/hooks/use-top-active-threads-metrics.cjs.js +82 -0
- package/dist/domains/metrics/hooks/use-top-active-threads-metrics.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks/use-top-active-threads-metrics.d.ts +2 -0
- package/dist/domains/metrics/hooks/use-top-active-threads-metrics.es.js +78 -0
- package/dist/domains/metrics/hooks/use-top-active-threads-metrics.es.js.map +1 -0
- package/dist/domains/metrics/hooks/use-top-resources-by-threads-metrics.cjs.js +82 -0
- package/dist/domains/metrics/hooks/use-top-resources-by-threads-metrics.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks/use-top-resources-by-threads-metrics.d.ts +2 -0
- package/dist/domains/metrics/hooks/use-top-resources-by-threads-metrics.es.js +78 -0
- package/dist/domains/metrics/hooks/use-top-resources-by-threads-metrics.es.js.map +1 -0
- package/dist/domains/metrics/hooks/use-total-tokens-kpi-metrics.cjs.js +44 -0
- package/dist/domains/metrics/hooks/use-total-tokens-kpi-metrics.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks/use-total-tokens-kpi-metrics.d.ts +2 -0
- package/dist/domains/metrics/hooks/use-total-tokens-kpi-metrics.es.js +40 -0
- package/dist/domains/metrics/hooks/use-total-tokens-kpi-metrics.es.js.map +1 -0
- package/dist/domains/metrics/hooks/use-trace-volume-metrics.cjs.js +50 -0
- package/dist/domains/metrics/hooks/use-trace-volume-metrics.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks/use-trace-volume-metrics.d.ts +2 -0
- package/dist/domains/metrics/hooks/use-trace-volume-metrics.es.js +46 -0
- package/dist/domains/metrics/hooks/use-trace-volume-metrics.es.js.map +1 -0
- package/dist/domains/metrics/hooks.cjs.js +56 -0
- package/dist/domains/metrics/hooks.cjs.js.map +1 -0
- package/dist/domains/metrics/hooks.d.ts +2 -0
- package/dist/domains/metrics/hooks.es.js +19 -0
- package/dist/domains/metrics/hooks.es.js.map +1 -0
- package/dist/domains/metrics/metrics-filters.cjs.js +254 -0
- package/dist/domains/metrics/metrics-filters.cjs.js.map +1 -0
- package/dist/domains/metrics/metrics-filters.d.ts +2 -0
- package/dist/domains/metrics/metrics-filters.es.js +237 -0
- package/dist/domains/metrics/metrics-filters.es.js.map +1 -0
- package/dist/domains/metrics.cjs.js +84 -0
- package/dist/domains/metrics.cjs.js.map +1 -0
- package/dist/domains/metrics.d.ts +2 -0
- package/dist/domains/metrics.es.js +31 -0
- package/dist/domains/metrics.es.js.map +1 -0
- package/dist/domains/traces/components/format-hierarchical-spans.cjs.js +70 -0
- package/dist/domains/traces/components/format-hierarchical-spans.cjs.js.map +1 -0
- package/dist/domains/traces/components/format-hierarchical-spans.d.ts +2 -0
- package/dist/domains/traces/components/format-hierarchical-spans.es.js +66 -0
- package/dist/domains/traces/components/format-hierarchical-spans.es.js.map +1 -0
- package/dist/domains/traces/components/no-traces-info.cjs.js +71 -0
- package/dist/domains/traces/components/no-traces-info.cjs.js.map +1 -0
- package/dist/domains/traces/components/no-traces-info.d.ts +2 -0
- package/dist/domains/traces/components/no-traces-info.es.js +67 -0
- package/dist/domains/traces/components/no-traces-info.es.js.map +1 -0
- package/dist/domains/traces/components/shared.cjs.js +77 -0
- package/dist/domains/traces/components/shared.cjs.js.map +1 -0
- package/dist/domains/traces/components/shared.d.ts +2 -0
- package/dist/domains/traces/components/shared.es.js +72 -0
- package/dist/domains/traces/components/shared.es.js.map +1 -0
- package/dist/domains/traces/components/span-data-panel-view.cjs.js +279 -0
- package/dist/domains/traces/components/span-data-panel-view.cjs.js.map +1 -0
- package/dist/domains/traces/components/span-data-panel-view.d.ts +2 -0
- package/dist/domains/traces/components/span-data-panel-view.es.js +275 -0
- package/dist/domains/traces/components/span-data-panel-view.es.js.map +1 -0
- package/dist/domains/traces/components/span-details-view.cjs.js +81 -0
- package/dist/domains/traces/components/span-details-view.cjs.js.map +1 -0
- package/dist/domains/traces/components/span-details-view.d.ts +2 -0
- package/dist/domains/traces/components/span-details-view.es.js +77 -0
- package/dist/domains/traces/components/span-details-view.es.js.map +1 -0
- package/dist/domains/traces/components/span-token-usage.cjs.js +94 -0
- package/dist/domains/traces/components/span-token-usage.cjs.js.map +1 -0
- package/dist/domains/traces/components/span-token-usage.d.ts +2 -0
- package/dist/domains/traces/components/span-token-usage.es.js +90 -0
- package/dist/domains/traces/components/span-token-usage.es.js.map +1 -0
- package/dist/domains/traces/components/span-token-usage.utils.cjs.js +30 -0
- package/dist/domains/traces/components/span-token-usage.utils.cjs.js.map +1 -0
- package/dist/domains/traces/components/span-token-usage.utils.d.ts +2 -0
- package/dist/domains/traces/components/span-token-usage.utils.es.js +26 -0
- package/dist/domains/traces/components/span-token-usage.utils.es.js.map +1 -0
- package/dist/domains/traces/components/timeline-expand-col.cjs.js +89 -0
- package/dist/domains/traces/components/timeline-expand-col.cjs.js.map +1 -0
- package/dist/domains/traces/components/timeline-expand-col.d.ts +2 -0
- package/dist/domains/traces/components/timeline-expand-col.es.js +85 -0
- package/dist/domains/traces/components/timeline-expand-col.es.js.map +1 -0
- package/dist/domains/traces/components/timeline-name-col.cjs.js +63 -0
- package/dist/domains/traces/components/timeline-name-col.cjs.js.map +1 -0
- package/dist/domains/traces/components/timeline-name-col.d.ts +2 -0
- package/dist/domains/traces/components/timeline-name-col.es.js +59 -0
- package/dist/domains/traces/components/timeline-name-col.es.js.map +1 -0
- package/dist/domains/traces/components/timeline-structure-sign.cjs.js +25 -0
- package/dist/domains/traces/components/timeline-structure-sign.cjs.js.map +1 -0
- package/dist/domains/traces/components/timeline-structure-sign.d.ts +2 -0
- package/dist/domains/traces/components/timeline-structure-sign.es.js +21 -0
- package/dist/domains/traces/components/timeline-structure-sign.es.js.map +1 -0
- package/dist/domains/traces/components/timeline-timing-col.cjs.js +80 -0
- package/dist/domains/traces/components/timeline-timing-col.cjs.js.map +1 -0
- package/dist/domains/traces/components/timeline-timing-col.d.ts +2 -0
- package/dist/domains/traces/components/timeline-timing-col.es.js +76 -0
- package/dist/domains/traces/components/timeline-timing-col.es.js.map +1 -0
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js +176 -0
- package/dist/domains/traces/components/trace-data-panel-view.cjs.js.map +1 -0
- package/dist/domains/traces/components/trace-data-panel-view.d.ts +2 -0
- package/dist/domains/traces/components/trace-data-panel-view.es.js +172 -0
- package/dist/domains/traces/components/trace-data-panel-view.es.js.map +1 -0
- package/dist/domains/traces/components/trace-details-view.cjs.js +55 -0
- package/dist/domains/traces/components/trace-details-view.cjs.js.map +1 -0
- package/dist/domains/traces/components/trace-details-view.d.ts +2 -0
- package/dist/domains/traces/components/trace-details-view.es.js +51 -0
- package/dist/domains/traces/components/trace-details-view.es.js.map +1 -0
- package/dist/domains/traces/components/trace-keys-and-values.cjs.js +46 -0
- package/dist/domains/traces/components/trace-keys-and-values.cjs.js.map +1 -0
- package/dist/domains/traces/components/trace-keys-and-values.d.ts +2 -0
- package/dist/domains/traces/components/trace-keys-and-values.es.js +42 -0
- package/dist/domains/traces/components/trace-keys-and-values.es.js.map +1 -0
- package/dist/domains/traces/components/trace-timeline-span.cjs.js +170 -0
- package/dist/domains/traces/components/trace-timeline-span.cjs.js.map +1 -0
- package/dist/domains/traces/components/trace-timeline-span.d.ts +2 -0
- package/dist/domains/traces/components/trace-timeline-span.es.js +166 -0
- package/dist/domains/traces/components/trace-timeline-span.es.js.map +1 -0
- package/dist/domains/traces/components/trace-timeline.cjs.js +90 -0
- package/dist/domains/traces/components/trace-timeline.cjs.js.map +1 -0
- package/dist/domains/traces/components/trace-timeline.d.ts +2 -0
- package/dist/domains/traces/components/trace-timeline.es.js +86 -0
- package/dist/domains/traces/components/trace-timeline.es.js.map +1 -0
- package/dist/domains/traces/components/traces-error-content.cjs.js +20 -0
- package/dist/domains/traces/components/traces-error-content.cjs.js.map +1 -0
- package/dist/domains/traces/components/traces-error-content.d.ts +2 -0
- package/dist/domains/traces/components/traces-error-content.es.js +16 -0
- package/dist/domains/traces/components/traces-error-content.es.js.map +1 -0
- package/dist/domains/traces/components/traces-layout.cjs.js +45 -0
- package/dist/domains/traces/components/traces-layout.cjs.js.map +1 -0
- package/dist/domains/traces/components/traces-layout.d.ts +2 -0
- package/dist/domains/traces/components/traces-layout.es.js +41 -0
- package/dist/domains/traces/components/traces-layout.es.js.map +1 -0
- package/dist/domains/traces/components/traces-list-mode-toggle.cjs.js +28 -0
- package/dist/domains/traces/components/traces-list-mode-toggle.cjs.js.map +1 -0
- package/dist/domains/traces/components/traces-list-mode-toggle.d.ts +2 -0
- package/dist/domains/traces/components/traces-list-mode-toggle.es.js +24 -0
- package/dist/domains/traces/components/traces-list-mode-toggle.es.js.map +1 -0
- package/dist/domains/traces/components/traces-list-view.cjs.js +115 -0
- package/dist/domains/traces/components/traces-list-view.cjs.js.map +1 -0
- package/dist/domains/traces/components/traces-list-view.d.ts +2 -0
- package/dist/domains/traces/components/traces-list-view.es.js +111 -0
- package/dist/domains/traces/components/traces-list-view.es.js.map +1 -0
- package/dist/domains/traces/components/traces-toolbar.cjs.js +73 -0
- package/dist/domains/traces/components/traces-toolbar.cjs.js.map +1 -0
- package/dist/domains/traces/components/traces-toolbar.d.ts +2 -0
- package/dist/domains/traces/components/traces-toolbar.es.js +69 -0
- package/dist/domains/traces/components/traces-toolbar.es.js.map +1 -0
- package/dist/domains/traces/components.cjs.js +49 -0
- package/dist/domains/traces/components.cjs.js.map +1 -0
- package/dist/domains/traces/components.d.ts +2 -0
- package/dist/domains/traces/components.es.js +21 -0
- package/dist/domains/traces/components.es.js.map +1 -0
- package/dist/domains/traces/hooks/get-all-span-ids.cjs.js +27 -0
- package/dist/domains/traces/hooks/get-all-span-ids.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/get-all-span-ids.d.ts +2 -0
- package/dist/domains/traces/hooks/get-all-span-ids.es.js +22 -0
- package/dist/domains/traces/hooks/get-all-span-ids.es.js.map +1 -0
- package/dist/domains/traces/hooks/use-branch.cjs.js +33 -0
- package/dist/domains/traces/hooks/use-branch.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/use-branch.d.ts +2 -0
- package/dist/domains/traces/hooks/use-branch.es.js +29 -0
- package/dist/domains/traces/hooks/use-branch.es.js.map +1 -0
- package/dist/domains/traces/hooks/use-download-trace-json.cjs.js +28 -0
- package/dist/domains/traces/hooks/use-download-trace-json.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/use-download-trace-json.d.ts +2 -0
- package/dist/domains/traces/hooks/use-download-trace-json.es.js +24 -0
- package/dist/domains/traces/hooks/use-download-trace-json.es.js.map +1 -0
- package/dist/domains/traces/hooks/use-entity-names.cjs.js +38 -0
- package/dist/domains/traces/hooks/use-entity-names.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/use-entity-names.d.ts +2 -0
- package/dist/domains/traces/hooks/use-entity-names.es.js +34 -0
- package/dist/domains/traces/hooks/use-entity-names.es.js.map +1 -0
- package/dist/domains/traces/hooks/use-environments.cjs.js +25 -0
- package/dist/domains/traces/hooks/use-environments.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/use-environments.d.ts +2 -0
- package/dist/domains/traces/hooks/use-environments.es.js +21 -0
- package/dist/domains/traces/hooks/use-environments.es.js.map +1 -0
- package/dist/domains/traces/hooks/use-service-names.cjs.js +25 -0
- package/dist/domains/traces/hooks/use-service-names.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/use-service-names.d.ts +2 -0
- package/dist/domains/traces/hooks/use-service-names.es.js +21 -0
- package/dist/domains/traces/hooks/use-service-names.es.js.map +1 -0
- package/dist/domains/traces/hooks/use-span-detail.cjs.js +31 -0
- package/dist/domains/traces/hooks/use-span-detail.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/use-span-detail.d.ts +2 -0
- package/dist/domains/traces/hooks/use-span-detail.es.js +27 -0
- package/dist/domains/traces/hooks/use-span-detail.es.js.map +1 -0
- package/dist/domains/traces/hooks/use-tags.cjs.js +25 -0
- package/dist/domains/traces/hooks/use-tags.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/use-tags.d.ts +2 -0
- package/dist/domains/traces/hooks/use-tags.es.js +21 -0
- package/dist/domains/traces/hooks/use-tags.es.js.map +1 -0
- package/dist/domains/traces/hooks/use-trace-filter-persistence.cjs.js +49 -0
- package/dist/domains/traces/hooks/use-trace-filter-persistence.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/use-trace-filter-persistence.d.ts +2 -0
- package/dist/domains/traces/hooks/use-trace-filter-persistence.es.js +45 -0
- package/dist/domains/traces/hooks/use-trace-filter-persistence.es.js.map +1 -0
- package/dist/domains/traces/hooks/use-trace-light-spans.cjs.js +33 -0
- package/dist/domains/traces/hooks/use-trace-light-spans.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/use-trace-light-spans.d.ts +2 -0
- package/dist/domains/traces/hooks/use-trace-light-spans.es.js +29 -0
- package/dist/domains/traces/hooks/use-trace-light-spans.es.js.map +1 -0
- package/dist/domains/traces/hooks/use-trace-list-navigation.cjs.js +22 -0
- package/dist/domains/traces/hooks/use-trace-list-navigation.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/use-trace-list-navigation.d.ts +2 -0
- package/dist/domains/traces/hooks/use-trace-list-navigation.es.js +18 -0
- package/dist/domains/traces/hooks/use-trace-list-navigation.es.js.map +1 -0
- package/dist/domains/traces/hooks/use-trace-or-branch-spans.cjs.js +40 -0
- package/dist/domains/traces/hooks/use-trace-or-branch-spans.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/use-trace-or-branch-spans.d.ts +2 -0
- package/dist/domains/traces/hooks/use-trace-or-branch-spans.es.js +36 -0
- package/dist/domains/traces/hooks/use-trace-or-branch-spans.es.js.map +1 -0
- package/dist/domains/traces/hooks/use-trace-span-navigation.cjs.js +18 -0
- package/dist/domains/traces/hooks/use-trace-span-navigation.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/use-trace-span-navigation.d.ts +2 -0
- package/dist/domains/traces/hooks/use-trace-span-navigation.es.js +14 -0
- package/dist/domains/traces/hooks/use-trace-span-navigation.es.js.map +1 -0
- package/dist/domains/traces/hooks/use-trace-spans.cjs.js +24 -0
- package/dist/domains/traces/hooks/use-trace-spans.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/use-trace-spans.d.ts +2 -0
- package/dist/domains/traces/hooks/use-trace-spans.es.js +20 -0
- package/dist/domains/traces/hooks/use-trace-spans.es.js.map +1 -0
- package/dist/domains/traces/hooks/use-trace-url-state.cjs.js +312 -0
- package/dist/domains/traces/hooks/use-trace-url-state.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/use-trace-url-state.d.ts +2 -0
- package/dist/domains/traces/hooks/use-trace-url-state.es.js +308 -0
- package/dist/domains/traces/hooks/use-trace-url-state.es.js.map +1 -0
- package/dist/domains/traces/hooks/use-traces.cjs.js +316 -0
- package/dist/domains/traces/hooks/use-traces.cjs.js.map +1 -0
- package/dist/domains/traces/hooks/use-traces.d.ts +2 -0
- package/dist/domains/traces/hooks/use-traces.es.js +306 -0
- package/dist/domains/traces/hooks/use-traces.es.js.map +1 -0
- package/dist/domains/traces/hooks.cjs.js +41 -0
- package/dist/domains/traces/hooks.cjs.js.map +1 -0
- package/dist/domains/traces/hooks.d.ts +2 -0
- package/dist/domains/traces/hooks.es.js +17 -0
- package/dist/domains/traces/hooks.es.js.map +1 -0
- package/dist/domains/traces/trace-filters.cjs.js +382 -0
- package/dist/domains/traces/trace-filters.cjs.js.map +1 -0
- package/dist/domains/traces/trace-filters.d.ts +2 -0
- package/dist/domains/traces/trace-filters.es.js +351 -0
- package/dist/domains/traces/trace-filters.es.js.map +1 -0
- package/dist/domains/traces/types.cjs.js +29 -0
- package/dist/domains/traces/types.cjs.js.map +1 -0
- package/dist/domains/traces/types.d.ts +2 -0
- package/dist/domains/traces/types.es.js +25 -0
- package/dist/domains/traces/types.es.js.map +1 -0
- package/dist/domains/traces/utils/span-utils.cjs.js +61 -0
- package/dist/domains/traces/utils/span-utils.cjs.js.map +1 -0
- package/dist/domains/traces/utils/span-utils.d.ts +2 -0
- package/dist/domains/traces/utils/span-utils.es.js +55 -0
- package/dist/domains/traces/utils/span-utils.es.js.map +1 -0
- package/dist/domains/traces/utils.cjs.js +12 -0
- package/dist/domains/traces/utils.cjs.js.map +1 -0
- package/dist/domains/traces/utils.d.ts +2 -0
- package/dist/domains/traces/utils.es.js +2 -0
- package/dist/domains/traces/utils.es.js.map +1 -0
- package/dist/domains/traces.cjs.js +117 -0
- package/dist/domains/traces.cjs.js.map +1 -0
- package/dist/domains/traces.d.ts +2 -0
- package/dist/domains/traces.es.js +40 -0
- package/dist/domains/traces.es.js.map +1 -0
- package/dist/downloadJson-DuPoMa_6.js +14 -0
- package/dist/downloadJson-DuPoMa_6.js.map +1 -0
- package/dist/downloadJson-PWUDbzkB.cjs +16 -0
- package/dist/downloadJson-PWUDbzkB.cjs.map +1 -0
- package/dist/drawer-Xyd1zBeV.js +326 -0
- package/dist/drawer-Xyd1zBeV.js.map +1 -0
- package/dist/drawer-xYzVLI5E.cjs +366 -0
- package/dist/drawer-xYzVLI5E.cjs.map +1 -0
- package/dist/dropdown-menu-CGei48WH.js +242 -0
- package/dist/dropdown-menu-CGei48WH.js.map +1 -0
- package/dist/dropdown-menu-pHJH-29Y.cjs +263 -0
- package/dist/dropdown-menu-pHJH-29Y.cjs.map +1 -0
- package/dist/ee/signals/components/signal-details-page.cjs.js +243 -0
- package/dist/ee/signals/components/signal-details-page.cjs.js.map +1 -0
- package/dist/ee/signals/components/signal-details-page.d.ts +2 -0
- package/dist/ee/signals/components/signal-details-page.es.js +234 -0
- package/dist/ee/signals/components/signal-details-page.es.js.map +1 -0
- package/dist/ee/signals/components/signal-details-utils.cjs.js +12 -0
- package/dist/ee/signals/components/signal-details-utils.cjs.js.map +1 -0
- package/dist/ee/signals/components/signal-details-utils.d.ts +2 -0
- package/dist/ee/signals/components/signal-details-utils.es.js +8 -0
- package/dist/ee/signals/components/signal-details-utils.es.js.map +1 -0
- package/dist/ee/signals/components/signals-overview-page.cjs.js +109 -0
- package/dist/ee/signals/components/signals-overview-page.cjs.js.map +1 -0
- package/dist/ee/signals/components/signals-overview-page.d.ts +2 -0
- package/dist/ee/signals/components/signals-overview-page.es.js +103 -0
- package/dist/ee/signals/components/signals-overview-page.es.js.map +1 -0
- package/dist/ee/signals/components.cjs.js +21 -0
- package/dist/ee/signals/components.cjs.js.map +1 -0
- package/dist/ee/signals/components.d.ts +2 -0
- package/dist/ee/signals/components.es.js +4 -0
- package/dist/ee/signals/components.es.js.map +1 -0
- package/dist/ee/signals/signals-chart-data.cjs.js +34 -0
- package/dist/ee/signals/signals-chart-data.cjs.js.map +1 -0
- package/dist/ee/signals/signals-chart-data.d.ts +2 -0
- package/dist/ee/signals/signals-chart-data.es.js +30 -0
- package/dist/ee/signals/signals-chart-data.es.js.map +1 -0
- package/dist/ee/signals/signals-data.cjs.js +199 -0
- package/dist/ee/signals/signals-data.cjs.js.map +1 -0
- package/dist/ee/signals/signals-data.d.ts +2 -0
- package/dist/ee/signals/signals-data.es.js +195 -0
- package/dist/ee/signals/signals-data.es.js.map +1 -0
- package/dist/ee/signals/types.cjs.js +3 -0
- package/dist/ee/signals/types.cjs.js.map +1 -0
- package/dist/ee/signals/types.d.ts +1 -0
- package/dist/ee/signals/types.es.js +2 -0
- package/dist/ee/signals/types.es.js.map +1 -0
- package/dist/ee/signals.cjs.js +25 -0
- package/dist/ee/signals.cjs.js.map +1 -0
- package/dist/ee/signals.d.ts +2 -0
- package/dist/ee/signals.es.js +6 -0
- package/dist/ee/signals.es.js.map +1 -0
- package/dist/ee/topics/components/topic-trace-details-panel.cjs.js +64 -0
- package/dist/ee/topics/components/topic-trace-details-panel.cjs.js.map +1 -0
- package/dist/ee/topics/components/topic-trace-details-panel.d.ts +2 -0
- package/dist/ee/topics/components/topic-trace-details-panel.es.js +60 -0
- package/dist/ee/topics/components/topic-trace-details-panel.es.js.map +1 -0
- package/dist/ee/topics/components/topic-trace-summary-list.cjs.js +60 -0
- package/dist/ee/topics/components/topic-trace-summary-list.cjs.js.map +1 -0
- package/dist/ee/topics/components/topic-trace-summary-list.d.ts +2 -0
- package/dist/ee/topics/components/topic-trace-summary-list.es.js +56 -0
- package/dist/ee/topics/components/topic-trace-summary-list.es.js.map +1 -0
- package/dist/ee/topics/components/topics-layout.cjs.js +38 -0
- package/dist/ee/topics/components/topics-layout.cjs.js.map +1 -0
- package/dist/ee/topics/components/topics-layout.d.ts +2 -0
- package/dist/ee/topics/components/topics-layout.es.js +34 -0
- package/dist/ee/topics/components/topics-layout.es.js.map +1 -0
- package/dist/ee/topics/components.cjs.js +14 -0
- package/dist/ee/topics/components.cjs.js.map +1 -0
- package/dist/ee/topics/components.d.ts +2 -0
- package/dist/ee/topics/components.es.js +4 -0
- package/dist/ee/topics/components.es.js.map +1 -0
- package/dist/ee/topics/types.cjs.js +3 -0
- package/dist/ee/topics/types.cjs.js.map +1 -0
- package/dist/ee/topics/types.d.ts +1 -0
- package/dist/ee/topics/types.es.js +2 -0
- package/dist/ee/topics/types.es.js.map +1 -0
- package/dist/ee/topics/utils.cjs.js +95 -0
- package/dist/ee/topics/utils.cjs.js.map +1 -0
- package/dist/ee/topics/utils.d.ts +2 -0
- package/dist/ee/topics/utils.es.js +84 -0
- package/dist/ee/topics/utils.es.js.map +1 -0
- package/dist/ee/topics.cjs.js +23 -0
- package/dist/ee/topics.cjs.js.map +1 -0
- package/dist/ee/topics.d.ts +2 -0
- package/dist/ee/topics.es.js +5 -0
- package/dist/ee/topics.es.js.map +1 -0
- package/dist/environment-variables-editor-ClIjYd7T.cjs +519 -0
- package/dist/environment-variables-editor-ClIjYd7T.cjs.map +1 -0
- package/dist/environment-variables-editor-nfTOfzSi.js +517 -0
- package/dist/environment-variables-editor-nfTOfzSi.js.map +1 -0
- package/dist/helpers-3p9MxQbh.js +346 -0
- package/dist/helpers-3p9MxQbh.js.map +1 -0
- package/dist/helpers-DyNelEvl.cjs +352 -0
- package/dist/helpers-DyNelEvl.cjs.map +1 -0
- package/dist/index.cjs.js +476 -8331
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +192 -8060
- package/dist/index.es.js.map +1 -1
- package/dist/input-C54PDtiP.js +65 -0
- package/dist/input-C54PDtiP.js.map +1 -0
- package/dist/input-VzN7w_Xq.cjs +86 -0
- package/dist/input-VzN7w_Xq.cjs.map +1 -0
- package/dist/input-group-CF6DB97L.cjs +245 -0
- package/dist/input-group-CF6DB97L.cjs.map +1 -0
- package/dist/input-group-DvVwUJwx.js +219 -0
- package/dist/input-group-DvVwUJwx.js.map +1 -0
- package/dist/kbd-C4u0WGAT.js +27 -0
- package/dist/kbd-C4u0WGAT.js.map +1 -0
- package/dist/kbd-Ce0Ey3ov.cjs +29 -0
- package/dist/kbd-Ce0Ey3ov.cjs.map +1 -0
- package/dist/list-search-CP-Rp1di.cjs +59 -0
- package/dist/list-search-CP-Rp1di.cjs.map +1 -0
- package/dist/list-search-CgKiATMs.js +57 -0
- package/dist/list-search-CgKiATMs.js.map +1 -0
- package/dist/logs-data-list-C2EdoFp1.cjs +83 -0
- package/dist/logs-data-list-C2EdoFp1.cjs.map +1 -0
- package/dist/logs-data-list-DPfoIlE-.js +81 -0
- package/dist/logs-data-list-DPfoIlE-.js.map +1 -0
- package/dist/main-sidebar-A3VICg2t.js +772 -0
- package/dist/main-sidebar-A3VICg2t.js.map +1 -0
- package/dist/main-sidebar-fnewlFD3.cjs +781 -0
- package/dist/main-sidebar-fnewlFD3.cjs.map +1 -0
- package/dist/markdown-renderer-Bcrk5ZJO.js +86 -0
- package/dist/markdown-renderer-Bcrk5ZJO.js.map +1 -0
- package/dist/markdown-renderer-Ca-WbDb4.cjs +88 -0
- package/dist/markdown-renderer-Ca-WbDb4.cjs.map +1 -0
- package/dist/multi-column-DFh_hvkc.cjs +156 -0
- package/dist/multi-column-DFh_hvkc.cjs.map +1 -0
- package/dist/multi-column-RwdQ5PRt.js +152 -0
- package/dist/multi-column-RwdQ5PRt.js.map +1 -0
- package/dist/popover-CfOWA0et.js +95 -0
- package/dist/popover-CfOWA0et.js.map +1 -0
- package/dist/popover-fpyU6qei.cjs +119 -0
- package/dist/popover-fpyU6qei.cjs.map +1 -0
- package/dist/primitives/control-size.cjs.js +28 -0
- package/dist/primitives/control-size.cjs.js.map +1 -0
- package/dist/primitives/control-size.d.ts +2 -0
- package/dist/primitives/control-size.es.js +22 -0
- package/dist/primitives/control-size.es.js.map +1 -0
- package/dist/primitives/form-element.cjs.js +24 -0
- package/dist/primitives/form-element.cjs.js.map +1 -0
- package/dist/primitives/form-element.d.ts +2 -0
- package/dist/primitives/form-element.es.js +12 -0
- package/dist/primitives/form-element.es.js.map +1 -0
- package/dist/primitives/portal-container.cjs.js +41 -0
- package/dist/primitives/portal-container.cjs.js.map +1 -0
- package/dist/primitives/portal-container.d.ts +2 -0
- package/dist/primitives/portal-container.es.js +17 -0
- package/dist/primitives/portal-container.es.js.map +1 -0
- package/dist/primitives/resize-handle-indicator.cjs.js +26 -0
- package/dist/primitives/resize-handle-indicator.cjs.js.map +1 -0
- package/dist/primitives/resize-handle-indicator.d.ts +2 -0
- package/dist/primitives/resize-handle-indicator.es.js +22 -0
- package/dist/primitives/resize-handle-indicator.es.js.map +1 -0
- package/dist/primitives/transitions.cjs.js +41 -0
- package/dist/primitives/transitions.cjs.js.map +1 -0
- package/dist/primitives/transitions.d.ts +2 -0
- package/dist/primitives/transitions.es.js +35 -0
- package/dist/primitives/transitions.es.js.map +1 -0
- package/dist/primitives/visually-hidden.cjs.js +13 -0
- package/dist/primitives/visually-hidden.cjs.js.map +1 -0
- package/dist/primitives/visually-hidden.d.ts +2 -0
- package/dist/primitives/visually-hidden.es.js +2 -0
- package/dist/primitives/visually-hidden.es.js.map +1 -0
- package/dist/process-step-progress-bar-CdsJhTYk.js +136 -0
- package/dist/process-step-progress-bar-CdsJhTYk.js.map +1 -0
- package/dist/process-step-progress-bar-Cs7oK8-I.cjs +141 -0
- package/dist/process-step-progress-bar-Cs7oK8-I.cjs.map +1 -0
- package/dist/property-filter-applied-Ec6BkYiN.cjs +352 -0
- package/dist/property-filter-applied-Ec6BkYiN.cjs.map +1 -0
- package/dist/property-filter-applied-ZEuiswpb.js +348 -0
- package/dist/property-filter-applied-ZEuiswpb.js.map +1 -0
- package/dist/property-filter-creator-CODVtgIW.cjs +333 -0
- package/dist/property-filter-creator-CODVtgIW.cjs.map +1 -0
- package/dist/property-filter-creator-DAMPk-R0.js +331 -0
- package/dist/property-filter-creator-DAMPk-R0.js.map +1 -0
- package/dist/radio-group-CqIdYAai.cjs +77 -0
- package/dist/radio-group-CqIdYAai.cjs.map +1 -0
- package/dist/radio-group-YvD-Ple6.js +55 -0
- package/dist/radio-group-YvD-Ple6.js.map +1 -0
- package/dist/resize/collapsible-panel.cjs.js +261 -0
- package/dist/resize/collapsible-panel.cjs.js.map +1 -0
- package/dist/resize/collapsible-panel.d.ts +2 -0
- package/dist/resize/collapsible-panel.es.js +257 -0
- package/dist/resize/collapsible-panel.es.js.map +1 -0
- package/dist/resize/panel-drawer.cjs.js +34 -0
- package/dist/resize/panel-drawer.cjs.js.map +1 -0
- package/dist/resize/panel-drawer.d.ts +2 -0
- package/dist/resize/panel-drawer.es.js +30 -0
- package/dist/resize/panel-drawer.es.js.map +1 -0
- package/dist/resize/panel-edge-icon.cjs.js +25 -0
- package/dist/resize/panel-edge-icon.cjs.js.map +1 -0
- package/dist/resize/panel-edge-icon.d.ts +2 -0
- package/dist/resize/panel-edge-icon.es.js +21 -0
- package/dist/resize/panel-edge-icon.es.js.map +1 -0
- package/dist/resize/panel-icon-button.cjs.js +15 -0
- package/dist/resize/panel-icon-button.cjs.js.map +1 -0
- package/dist/resize/panel-icon-button.d.ts +2 -0
- package/dist/resize/panel-icon-button.es.js +11 -0
- package/dist/resize/panel-icon-button.es.js.map +1 -0
- package/dist/resize/separator.cjs.js +45 -0
- package/dist/resize/separator.cjs.js.map +1 -0
- package/dist/resize/separator.d.ts +2 -0
- package/dist/resize/separator.es.js +41 -0
- package/dist/resize/separator.es.js.map +1 -0
- package/dist/resize/use-clamped-element-cursor.cjs.js +56 -0
- package/dist/resize/use-clamped-element-cursor.cjs.js.map +1 -0
- package/dist/resize/use-clamped-element-cursor.d.ts +2 -0
- package/dist/resize/use-clamped-element-cursor.es.js +51 -0
- package/dist/resize/use-clamped-element-cursor.es.js.map +1 -0
- package/dist/rule-builder-B7J3z1Gd.js +563 -0
- package/dist/rule-builder-B7J3z1Gd.js.map +1 -0
- package/dist/rule-builder-CN5HwvJ3.cjs +594 -0
- package/dist/rule-builder-CN5HwvJ3.cjs.map +1 -0
- package/dist/scores-data-list-BfLOnfqe.js +45 -0
- package/dist/scores-data-list-BfLOnfqe.js.map +1 -0
- package/dist/scores-data-list-Dr1z54TV.cjs +47 -0
- package/dist/scores-data-list-Dr1z54TV.cjs.map +1 -0
- package/dist/search-field-block-BdEOohNh.js +115 -0
- package/dist/search-field-block-BdEOohNh.js.map +1 -0
- package/dist/search-field-block-MueLS5VO.cjs +117 -0
- package/dist/search-field-block-MueLS5VO.cjs.map +1 -0
- package/dist/searchbar-B42oQGrT.cjs +105 -0
- package/dist/searchbar-B42oQGrT.cjs.map +1 -0
- package/dist/searchbar-CY4dg-Im.js +102 -0
- package/dist/searchbar-CY4dg-Im.js.map +1 -0
- package/dist/select-BxSmi19p.cjs +188 -0
- package/dist/select-BxSmi19p.cjs.map +1 -0
- package/dist/select-CFB6QZ9B.js +162 -0
- package/dist/select-CFB6QZ9B.js.map +1 -0
- package/dist/select-data-filter-BasB6Wt3.cjs +194 -0
- package/dist/select-data-filter-BasB6Wt3.cjs.map +1 -0
- package/dist/select-data-filter-Cb6Exh7H.js +192 -0
- package/dist/select-data-filter-Cb6Exh7H.js.map +1 -0
- package/dist/select-field-block-C1I1FLvQ.js +48 -0
- package/dist/select-field-block-C1I1FLvQ.js.map +1 -0
- package/dist/select-field-block-Cb5-7wDy.cjs +50 -0
- package/dist/select-field-block-Cb5-7wDy.cjs.map +1 -0
- package/dist/src/domains/traces/index.d.ts +1 -3
- package/dist/src/domains/traces/types.d.ts +2 -0
- package/dist/store/playground-store.cjs.js +21 -0
- package/dist/store/playground-store.cjs.js.map +1 -0
- package/dist/store/playground-store.d.ts +2 -0
- package/dist/store/playground-store.es.js +17 -0
- package/dist/store/playground-store.es.js.map +1 -0
- package/dist/tabs-content--uzXt5ch.js +18 -0
- package/dist/tabs-content--uzXt5ch.js.map +1 -0
- package/dist/tabs-content-ohtjaVdC.cjs +20 -0
- package/dist/tabs-content-ohtjaVdC.cjs.map +1 -0
- package/dist/tabs-tab-B7Ziuuh8.cjs +122 -0
- package/dist/tabs-tab-B7Ziuuh8.cjs.map +1 -0
- package/dist/tabs-tab-XnMoa1fn.js +118 -0
- package/dist/tabs-tab-XnMoa1fn.js.map +1 -0
- package/dist/text-field-block-DnhYm_C2.cjs +50 -0
- package/dist/text-field-block-DnhYm_C2.cjs.map +1 -0
- package/dist/text-field-block-wLF3JlhE.js +48 -0
- package/dist/text-field-block-wLF3JlhE.js.map +1 -0
- package/dist/textarea-CEt75kZ1.cjs +83 -0
- package/dist/textarea-CEt75kZ1.cjs.map +1 -0
- package/dist/textarea-DnU5om-B.js +62 -0
- package/dist/textarea-DnU5om-B.js.map +1 -0
- package/dist/theme-toggle-0N1bVeCr.js +85 -0
- package/dist/theme-toggle-0N1bVeCr.js.map +1 -0
- package/dist/theme-toggle-DTRiM-8u.cjs +87 -0
- package/dist/theme-toggle-DTRiM-8u.cjs.map +1 -0
- package/dist/thread-list-6cywfaM3.js +72 -0
- package/dist/thread-list-6cywfaM3.js.map +1 -0
- package/dist/thread-list-jqmdJxUm.cjs +79 -0
- package/dist/thread-list-jqmdJxUm.cjs.map +1 -0
- package/dist/time-picker-D5qUadVb.cjs +113 -0
- package/dist/time-picker-D5qUadVb.cjs.map +1 -0
- package/dist/time-picker-ji6mao2A.js +110 -0
- package/dist/time-picker-ji6mao2A.js.map +1 -0
- package/dist/traces-data-list-BpQO8ZSH.cjs +85 -0
- package/dist/traces-data-list-BpQO8ZSH.cjs.map +1 -0
- package/dist/traces-data-list-DzqdihE7.js +83 -0
- package/dist/traces-data-list-DzqdihE7.js.map +1 -0
- package/dist/tree-CeGhDY_u.js +471 -0
- package/dist/tree-CeGhDY_u.js.map +1 -0
- package/dist/tree-CjUNJlMa.cjs +492 -0
- package/dist/tree-CjUNJlMa.cjs.map +1 -0
- package/dist/truncate-9TKOzqxZ.js +47 -0
- package/dist/truncate-9TKOzqxZ.js.map +1 -0
- package/dist/truncate-BiIUPM1q.cjs +49 -0
- package/dist/truncate-BiIUPM1q.cjs.map +1 -0
- package/dist/utils/file.cjs.js +3 -13
- package/dist/utils/file.cjs.js.map +1 -1
- package/dist/utils/file.es.js +3 -13
- package/dist/utils/file.es.js.map +1 -1
- package/package.json +57 -7
- package/dist/Avatar-DWt9SxCq.cjs +0 -44
- package/dist/Avatar-DWt9SxCq.cjs.map +0 -1
- package/dist/Avatar-t2EzDraN.js +0 -42
- package/dist/Avatar-t2EzDraN.js.map +0 -1
- package/dist/Badge-CIIPrVJ8.js +0 -55
- package/dist/Badge-CIIPrVJ8.js.map +0 -1
- package/dist/Badge-DhIGMqUf.cjs +0 -57
- package/dist/Badge-DhIGMqUf.cjs.map +0 -1
- package/dist/Breadcrumb-CArFRvVX.cjs +0 -37
- package/dist/Breadcrumb-CArFRvVX.cjs.map +0 -1
- package/dist/Breadcrumb-Ciy7FM3z.js +0 -34
- package/dist/Breadcrumb-Ciy7FM3z.js.map +0 -1
- package/dist/Button-Bj667lJx.cjs +0 -108
- package/dist/Button-Bj667lJx.cjs.map +0 -1
- package/dist/Button-DUxP65eY.js +0 -105
- package/dist/Button-DUxP65eY.js.map +0 -1
- package/dist/ErrorBoundary-Dzim3WH6.cjs +0 -175
- package/dist/ErrorBoundary-Dzim3WH6.cjs.map +0 -1
- package/dist/ErrorBoundary-UTpu5Qah.js +0 -154
- package/dist/ErrorBoundary-UTpu5Qah.js.map +0 -1
- package/dist/Notice-BJ6lke5l.js +0 -89
- package/dist/Notice-BJ6lke5l.js.map +0 -1
- package/dist/Notice-BoWYUdbS.cjs +0 -91
- package/dist/Notice-BoWYUdbS.cjs.map +0 -1
- package/dist/SessionExpired-1MYjtwiy.js +0 -45
- package/dist/SessionExpired-1MYjtwiy.js.map +0 -1
- package/dist/SessionExpired-DFE3cHmO.cjs +0 -47
- package/dist/SessionExpired-DFE3cHmO.cjs.map +0 -1
- package/dist/alert-dialog-BRvoYQwJ.js +0 -99
- package/dist/alert-dialog-BRvoYQwJ.js.map +0 -1
- package/dist/alert-dialog-k5-YzF6v.cjs +0 -120
- package/dist/alert-dialog-k5-YzF6v.cjs.map +0 -1
- package/dist/buttons-group-Cq0bhJ9W.cjs +0 -185
- package/dist/buttons-group-Cq0bhJ9W.cjs.map +0 -1
- package/dist/buttons-group-DoY6vWNX.js +0 -161
- package/dist/buttons-group-DoY6vWNX.js.map +0 -1
- package/dist/checkbox-CYy10J_9.js +0 -88
- package/dist/checkbox-CYy10J_9.js.map +0 -1
- package/dist/checkbox-D1vhO7CT.cjs +0 -109
- package/dist/checkbox-D1vhO7CT.cjs.map +0 -1
- package/dist/code-block-QAdMwht_.cjs +0 -86
- package/dist/code-block-QAdMwht_.cjs.map +0 -1
- package/dist/code-block-wIYnRia5.js +0 -84
- package/dist/code-block-wIYnRia5.js.map +0 -1
- package/dist/code-editor-Dy7xhPHz.js +0 -441
- package/dist/code-editor-Dy7xhPHz.js.map +0 -1
- package/dist/code-editor-PXyii7uq.cjs +0 -449
- package/dist/code-editor-PXyii7uq.cjs.map +0 -1
- package/dist/collapsible-BkPKxVw5.cjs +0 -61
- package/dist/collapsible-BkPKxVw5.cjs.map +0 -1
- package/dist/collapsible-C0LKBzLy.js +0 -57
- package/dist/collapsible-C0LKBzLy.js.map +0 -1
- package/dist/combobox-B3lIawbp.js +0 -223
- package/dist/combobox-B3lIawbp.js.map +0 -1
- package/dist/combobox-DPV6JFnR.cjs +0 -245
- package/dist/combobox-DPV6JFnR.cjs.map +0 -1
- package/dist/command-BT3bjfa0.cjs +0 -194
- package/dist/command-BT3bjfa0.cjs.map +0 -1
- package/dist/command-DnI0VT4j.js +0 -165
- package/dist/command-DnI0VT4j.js.map +0 -1
- package/dist/control-size-BdDLgGX4.js +0 -22
- package/dist/control-size-BdDLgGX4.js.map +0 -1
- package/dist/control-size-D67C0kPZ.cjs +0 -26
- package/dist/control-size-D67C0kPZ.cjs.map +0 -1
- package/dist/copy-button-CXn_T1Vi.js +0 -44
- package/dist/copy-button-CXn_T1Vi.js.map +0 -1
- package/dist/copy-button-UYec6W5c.cjs +0 -46
- package/dist/copy-button-UYec6W5c.cjs.map +0 -1
- package/dist/data-code-section-BUcQHFw2.js +0 -332
- package/dist/data-code-section-BUcQHFw2.js.map +0 -1
- package/dist/data-code-section-WbOdAr6i.cjs +0 -335
- package/dist/data-code-section-WbOdAr6i.cjs.map +0 -1
- package/dist/data-list-BZxmpMh8.cjs +0 -135
- package/dist/data-list-BZxmpMh8.cjs.map +0 -1
- package/dist/data-list-DDgI1bcK.js +0 -131
- package/dist/data-list-DDgI1bcK.js.map +0 -1
- package/dist/data-list-skeleton-CKtfnKu1.cjs +0 -32
- package/dist/data-list-skeleton-CKtfnKu1.cjs.map +0 -1
- package/dist/data-list-skeleton-DdII1DEa.js +0 -30
- package/dist/data-list-skeleton-DdII1DEa.js.map +0 -1
- package/dist/data-list-top-cell-GbxlrnjB.cjs +0 -540
- package/dist/data-list-top-cell-GbxlrnjB.cjs.map +0 -1
- package/dist/data-list-top-cell-qvCVWXs-.js +0 -513
- package/dist/data-list-top-cell-qvCVWXs-.js.map +0 -1
- package/dist/data-panel-C-Cw6JZU.js +0 -87
- package/dist/data-panel-C-Cw6JZU.js.map +0 -1
- package/dist/data-panel-Cfjo5g3E.cjs +0 -89
- package/dist/data-panel-Cfjo5g3E.cjs.map +0 -1
- package/dist/date-time-picker-CS4HSyCh.cjs +0 -268
- package/dist/date-time-picker-CS4HSyCh.cjs.map +0 -1
- package/dist/date-time-picker-CxYld6QS.js +0 -245
- package/dist/date-time-picker-CxYld6QS.js.map +0 -1
- package/dist/date-time-range-picker-C4zzA37w.cjs +0 -170
- package/dist/date-time-range-picker-C4zzA37w.cjs.map +0 -1
- package/dist/date-time-range-picker-lu44sN6F.js +0 -168
- package/dist/date-time-range-picker-lu44sN6F.js.map +0 -1
- package/dist/dialog-CFJARbIM.js +0 -76
- package/dist/dialog-CFJARbIM.js.map +0 -1
- package/dist/dialog-Lm_EDANe.cjs +0 -107
- package/dist/dialog-Lm_EDANe.cjs.map +0 -1
- package/dist/drawer-CiUjFp3u.js +0 -326
- package/dist/drawer-CiUjFp3u.js.map +0 -1
- package/dist/drawer-jT2bUkrJ.cjs +0 -366
- package/dist/drawer-jT2bUkrJ.cjs.map +0 -1
- package/dist/dropdown-menu-BvpUs54j.cjs +0 -263
- package/dist/dropdown-menu-BvpUs54j.cjs.map +0 -1
- package/dist/dropdown-menu-rYjDHlMP.js +0 -242
- package/dist/dropdown-menu-rYjDHlMP.js.map +0 -1
- package/dist/environment-variables-editor-DwkANgjj.cjs +0 -519
- package/dist/environment-variables-editor-DwkANgjj.cjs.map +0 -1
- package/dist/environment-variables-editor-PCGuUAIv.js +0 -517
- package/dist/environment-variables-editor-PCGuUAIv.js.map +0 -1
- package/dist/form-element-Cy7aV1Ds.cjs +0 -22
- package/dist/form-element-Cy7aV1Ds.cjs.map +0 -1
- package/dist/form-element-DUtZESwq.js +0 -12
- package/dist/form-element-DUtZESwq.js.map +0 -1
- package/dist/helpers-CsdqE6P2.js +0 -346
- package/dist/helpers-CsdqE6P2.js.map +0 -1
- package/dist/helpers-DZjuFmIz.cjs +0 -352
- package/dist/helpers-DZjuFmIz.cjs.map +0 -1
- package/dist/input-CmF5qOKQ.js +0 -65
- package/dist/input-CmF5qOKQ.js.map +0 -1
- package/dist/input-DL5-kqK-.cjs +0 -86
- package/dist/input-DL5-kqK-.cjs.map +0 -1
- package/dist/input-group-bzqIGNp3.cjs +0 -245
- package/dist/input-group-bzqIGNp3.cjs.map +0 -1
- package/dist/input-group-iZZD8Z65.js +0 -219
- package/dist/input-group-iZZD8Z65.js.map +0 -1
- package/dist/kbd-BAS3Kd2E.cjs +0 -29
- package/dist/kbd-BAS3Kd2E.cjs.map +0 -1
- package/dist/kbd-gp0Sr4mW.js +0 -27
- package/dist/kbd-gp0Sr4mW.js.map +0 -1
- package/dist/list-search-Cd7OGOdt.js +0 -57
- package/dist/list-search-Cd7OGOdt.js.map +0 -1
- package/dist/list-search-Cn23Rbyh.cjs +0 -59
- package/dist/list-search-Cn23Rbyh.cjs.map +0 -1
- package/dist/logs-data-list-CCaTeaUh.js +0 -80
- package/dist/logs-data-list-CCaTeaUh.js.map +0 -1
- package/dist/logs-data-list-Dwh8cMrt.cjs +0 -82
- package/dist/logs-data-list-Dwh8cMrt.cjs.map +0 -1
- package/dist/main-sidebar-DyA0N-zw.js +0 -788
- package/dist/main-sidebar-DyA0N-zw.js.map +0 -1
- package/dist/main-sidebar-Fa0x88X0.cjs +0 -798
- package/dist/main-sidebar-Fa0x88X0.cjs.map +0 -1
- package/dist/markdown-renderer-D_sNkQ-a.js +0 -86
- package/dist/markdown-renderer-D_sNkQ-a.js.map +0 -1
- package/dist/markdown-renderer-m0Qqa1u8.cjs +0 -88
- package/dist/markdown-renderer-m0Qqa1u8.cjs.map +0 -1
- package/dist/multi-column-BLp7eL6P.cjs +0 -136
- package/dist/multi-column-BLp7eL6P.cjs.map +0 -1
- package/dist/multi-column-DeSb1YDE.js +0 -132
- package/dist/multi-column-DeSb1YDE.js.map +0 -1
- package/dist/popover-BjnbSCQw.cjs +0 -119
- package/dist/popover-BjnbSCQw.cjs.map +0 -1
- package/dist/popover-DaFWFKma.js +0 -95
- package/dist/popover-DaFWFKma.js.map +0 -1
- package/dist/portal-container-BlQ6JKob.js +0 -17
- package/dist/portal-container-BlQ6JKob.js.map +0 -1
- package/dist/portal-container-BsvHZxj7.cjs +0 -39
- package/dist/portal-container-BsvHZxj7.cjs.map +0 -1
- package/dist/process-step-progress-bar-DKn_SWjH.js +0 -136
- package/dist/process-step-progress-bar-DKn_SWjH.js.map +0 -1
- package/dist/process-step-progress-bar-gMkvVzG1.cjs +0 -141
- package/dist/process-step-progress-bar-gMkvVzG1.cjs.map +0 -1
- package/dist/property-filter-creator-CdxTSrOs.cjs +0 -674
- package/dist/property-filter-creator-CdxTSrOs.cjs.map +0 -1
- package/dist/property-filter-creator-D60-FVBL.js +0 -669
- package/dist/property-filter-creator-D60-FVBL.js.map +0 -1
- package/dist/radio-group-DdMscZHh.js +0 -55
- package/dist/radio-group-DdMscZHh.js.map +0 -1
- package/dist/radio-group-rp_4ZkOj.cjs +0 -77
- package/dist/radio-group-rp_4ZkOj.cjs.map +0 -1
- package/dist/rule-builder-Zs6Ywp5-.js +0 -563
- package/dist/rule-builder-Zs6Ywp5-.js.map +0 -1
- package/dist/rule-builder-vwKEUlZU.cjs +0 -594
- package/dist/rule-builder-vwKEUlZU.cjs.map +0 -1
- package/dist/search-field-block-BkRBAVCC.cjs +0 -117
- package/dist/search-field-block-BkRBAVCC.cjs.map +0 -1
- package/dist/search-field-block-CJSnpu8G.js +0 -115
- package/dist/search-field-block-CJSnpu8G.js.map +0 -1
- package/dist/searchbar-DzOR_xnW.cjs +0 -105
- package/dist/searchbar-DzOR_xnW.cjs.map +0 -1
- package/dist/searchbar-SYpN7NP_.js +0 -102
- package/dist/searchbar-SYpN7NP_.js.map +0 -1
- package/dist/select-BSf4VfTX.js +0 -162
- package/dist/select-BSf4VfTX.js.map +0 -1
- package/dist/select-CA9x5WdL.cjs +0 -188
- package/dist/select-CA9x5WdL.cjs.map +0 -1
- package/dist/select-data-filter-B1ZSewKM.cjs +0 -194
- package/dist/select-data-filter-B1ZSewKM.cjs.map +0 -1
- package/dist/select-data-filter-CRsIOTuD.js +0 -192
- package/dist/select-data-filter-CRsIOTuD.js.map +0 -1
- package/dist/select-field-block-DuCz05gv.cjs +0 -50
- package/dist/select-field-block-DuCz05gv.cjs.map +0 -1
- package/dist/select-field-block-z5_ve898.js +0 -48
- package/dist/select-field-block-z5_ve898.js.map +0 -1
- package/dist/tabs-content-De3TzqG0.cjs +0 -20
- package/dist/tabs-content-De3TzqG0.cjs.map +0 -1
- package/dist/tabs-content-J4YUF8-A.js +0 -18
- package/dist/tabs-content-J4YUF8-A.js.map +0 -1
- package/dist/tabs-tab-CkHDocn9.cjs +0 -122
- package/dist/tabs-tab-CkHDocn9.cjs.map +0 -1
- package/dist/tabs-tab-D0Ydz5KC.js +0 -118
- package/dist/tabs-tab-D0Ydz5KC.js.map +0 -1
- package/dist/text-field-block-DPyUlRc-.cjs +0 -50
- package/dist/text-field-block-DPyUlRc-.cjs.map +0 -1
- package/dist/text-field-block-DybcFyt-.js +0 -48
- package/dist/text-field-block-DybcFyt-.js.map +0 -1
- package/dist/textarea-CdmDbgMg.cjs +0 -83
- package/dist/textarea-CdmDbgMg.cjs.map +0 -1
- package/dist/textarea-CvcSdBxC.js +0 -62
- package/dist/textarea-CvcSdBxC.js.map +0 -1
- package/dist/theme-toggle-BhMopYF0.cjs +0 -87
- package/dist/theme-toggle-BhMopYF0.cjs.map +0 -1
- package/dist/theme-toggle-Byu3F-Vt.js +0 -85
- package/dist/theme-toggle-Byu3F-Vt.js.map +0 -1
- package/dist/thread-list-DISOdCG1.cjs +0 -79
- package/dist/thread-list-DISOdCG1.cjs.map +0 -1
- package/dist/thread-list-DStSVzaX.js +0 -72
- package/dist/thread-list-DStSVzaX.js.map +0 -1
- package/dist/time-picker-CL4xWUGp.js +0 -110
- package/dist/time-picker-CL4xWUGp.js.map +0 -1
- package/dist/time-picker-CR4_fwUk.cjs +0 -113
- package/dist/time-picker-CR4_fwUk.cjs.map +0 -1
- package/dist/traces-data-list-C_7puLGo.cjs +0 -126
- package/dist/traces-data-list-C_7puLGo.cjs.map +0 -1
- package/dist/traces-data-list-D8pdf9Yu.js +0 -123
- package/dist/traces-data-list-D8pdf9Yu.js.map +0 -1
- package/dist/transitions-DpczSjmD.cjs +0 -39
- package/dist/transitions-DpczSjmD.cjs.map +0 -1
- package/dist/transitions-tFfqxz40.js +0 -35
- package/dist/transitions-tFfqxz40.js.map +0 -1
- package/dist/tree-DIW9AT9g.js +0 -471
- package/dist/tree-DIW9AT9g.js.map +0 -1
- package/dist/tree-TfjjoQWc.cjs +0 -492
- package/dist/tree-TfjjoQWc.cjs.map +0 -1
- package/dist/truncate-Dc4uvGy6.cjs +0 -49
- package/dist/truncate-Dc4uvGy6.cjs.map +0 -1
- package/dist/truncate-ReelyWbD.js +0 -47
- package/dist/truncate-ReelyWbD.js.map +0 -1
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
|
|
5
|
+
const react = require('@mastra/react');
|
|
6
|
+
const reactQuery = require('@tanstack/react-query');
|
|
7
|
+
const domains_metrics_hooks_useMetricsFilters = require('./use-metrics-filters.cjs.js');
|
|
8
|
+
|
|
9
|
+
function chooseTokenUsageInterval(datePreset) {
|
|
10
|
+
return datePreset === "24h" ? "1h" : "1d";
|
|
11
|
+
}
|
|
12
|
+
function formatTime(ts, interval) {
|
|
13
|
+
if (interval === "1h") {
|
|
14
|
+
return ts.toLocaleTimeString("en-US", { hour: "2-digit", minute: "2-digit", hour12: false });
|
|
15
|
+
}
|
|
16
|
+
return ts.toLocaleDateString("en-US", { month: "short", day: "2-digit" });
|
|
17
|
+
}
|
|
18
|
+
function addSeriesPoints(pointMap, series, key) {
|
|
19
|
+
for (const point of series?.points ?? []) {
|
|
20
|
+
const tsMs = new Date(point.timestamp).getTime();
|
|
21
|
+
if (!Number.isFinite(tsMs)) continue;
|
|
22
|
+
const existing = pointMap.get(tsMs) ?? {
|
|
23
|
+
tsMs,
|
|
24
|
+
input: 0,
|
|
25
|
+
output: 0,
|
|
26
|
+
cost: null,
|
|
27
|
+
costUnits: /* @__PURE__ */ new Set(),
|
|
28
|
+
hasUnknownCostUnit: false
|
|
29
|
+
};
|
|
30
|
+
existing[key] += point.value;
|
|
31
|
+
if (point.estimatedCost != null) {
|
|
32
|
+
existing.cost = (existing.cost ?? 0) + point.estimatedCost;
|
|
33
|
+
if (series?.costUnit) {
|
|
34
|
+
existing.costUnits.add(series.costUnit);
|
|
35
|
+
} else {
|
|
36
|
+
existing.hasUnknownCostUnit = true;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
pointMap.set(tsMs, existing);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function toCostUnit(entry) {
|
|
43
|
+
if (entry.cost == null || entry.hasUnknownCostUnit || entry.costUnits.size !== 1) return null;
|
|
44
|
+
return [...entry.costUnits][0] ?? null;
|
|
45
|
+
}
|
|
46
|
+
function useTokenUsageTimeSeries() {
|
|
47
|
+
const client = react.useMastraClient();
|
|
48
|
+
const { datePreset, filters, filterKey } = domains_metrics_hooks_useMetricsFilters.useMetricsFilters();
|
|
49
|
+
const interval = chooseTokenUsageInterval(datePreset);
|
|
50
|
+
return reactQuery.useQuery({
|
|
51
|
+
queryKey: ["metrics", "token-usage-timeseries", filterKey, interval],
|
|
52
|
+
queryFn: async () => {
|
|
53
|
+
const [inputRes, outputRes] = await Promise.all([
|
|
54
|
+
client.getMetricTimeSeries({
|
|
55
|
+
name: ["mastra_model_total_input_tokens"],
|
|
56
|
+
interval,
|
|
57
|
+
aggregation: "sum",
|
|
58
|
+
filters
|
|
59
|
+
}),
|
|
60
|
+
client.getMetricTimeSeries({
|
|
61
|
+
name: ["mastra_model_total_output_tokens"],
|
|
62
|
+
interval,
|
|
63
|
+
aggregation: "sum",
|
|
64
|
+
filters
|
|
65
|
+
})
|
|
66
|
+
]);
|
|
67
|
+
const pointMap = /* @__PURE__ */ new Map();
|
|
68
|
+
addSeriesPoints(pointMap, inputRes.series[0], "input");
|
|
69
|
+
addSeriesPoints(pointMap, outputRes.series[0], "output");
|
|
70
|
+
const data = Array.from(pointMap.values()).sort((a, b) => a.tsMs - b.tsMs).map((point) => {
|
|
71
|
+
const ts = new Date(point.tsMs);
|
|
72
|
+
return {
|
|
73
|
+
time: formatTime(ts, interval),
|
|
74
|
+
tsMs: point.tsMs,
|
|
75
|
+
input: point.input,
|
|
76
|
+
output: point.output,
|
|
77
|
+
total: point.input + point.output,
|
|
78
|
+
cost: point.cost,
|
|
79
|
+
costUnit: toCostUnit(point)
|
|
80
|
+
};
|
|
81
|
+
});
|
|
82
|
+
return { data, interval };
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
exports.useTokenUsageTimeSeries = useTokenUsageTimeSeries;
|
|
88
|
+
//# sourceMappingURL=use-token-usage-timeseries.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-token-usage-timeseries.cjs.js","sources":["../../../../src/domains/metrics/hooks/use-token-usage-timeseries.tsx"],"sourcesContent":["import { useMastraClient } from '@mastra/react';\nimport { useQuery } from '@tanstack/react-query';\nimport { useMetricsFilters } from './use-metrics-filters';\n\nexport type TokenUsageTimeSeriesInterval = '1h' | '1d';\n\nexport interface TokenTimelinePoint {\n time: string;\n tsMs: number;\n input: number;\n output: number;\n total: number;\n cost: number | null;\n costUnit: string | null;\n}\n\nexport interface TokenUsageTimeSeriesData {\n data: TokenTimelinePoint[];\n interval: TokenUsageTimeSeriesInterval;\n}\n\ntype TimeSeriesPoint = {\n timestamp: string | Date;\n value: number;\n estimatedCost?: number | null;\n};\n\ntype SeriesWithCost = {\n costUnit?: string | null;\n points: TimeSeriesPoint[];\n};\n\ntype TokenTimelineAccumulator = {\n tsMs: number;\n input: number;\n output: number;\n cost: number | null;\n costUnits: Set<string>;\n hasUnknownCostUnit: boolean;\n};\n\nfunction chooseTokenUsageInterval(\n datePreset: ReturnType<typeof useMetricsFilters>['datePreset'],\n): TokenUsageTimeSeriesInterval {\n return datePreset === '24h' ? '1h' : '1d';\n}\n\nfunction formatTime(ts: Date, interval: TokenUsageTimeSeriesInterval): string {\n if (interval === '1h') {\n return ts.toLocaleTimeString('en-US', { hour: '2-digit', minute: '2-digit', hour12: false });\n }\n return ts.toLocaleDateString('en-US', { month: 'short', day: '2-digit' });\n}\n\nfunction addSeriesPoints(\n pointMap: Map<number, TokenTimelineAccumulator>,\n series: SeriesWithCost | undefined,\n key: 'input' | 'output',\n) {\n for (const point of series?.points ?? []) {\n const tsMs = new Date(point.timestamp).getTime();\n if (!Number.isFinite(tsMs)) continue;\n\n const existing = pointMap.get(tsMs) ?? {\n tsMs,\n input: 0,\n output: 0,\n cost: null,\n costUnits: new Set<string>(),\n hasUnknownCostUnit: false,\n };\n\n existing[key] += point.value;\n\n if (point.estimatedCost != null) {\n existing.cost = (existing.cost ?? 0) + point.estimatedCost;\n if (series?.costUnit) {\n existing.costUnits.add(series.costUnit);\n } else {\n existing.hasUnknownCostUnit = true;\n }\n }\n\n pointMap.set(tsMs, existing);\n }\n}\n\nfunction toCostUnit(entry: TokenTimelineAccumulator): string | null {\n if (entry.cost == null || entry.hasUnknownCostUnit || entry.costUnits.size !== 1) return null;\n return [...entry.costUnits][0] ?? null;\n}\n\nexport function useTokenUsageTimeSeries() {\n const client = useMastraClient();\n const { datePreset, filters, filterKey } = useMetricsFilters();\n const interval = chooseTokenUsageInterval(datePreset);\n\n return useQuery({\n queryKey: ['metrics', 'token-usage-timeseries', filterKey, interval],\n queryFn: async (): Promise<TokenUsageTimeSeriesData> => {\n const [inputRes, outputRes] = await Promise.all([\n client.getMetricTimeSeries({\n name: ['mastra_model_total_input_tokens'],\n interval,\n aggregation: 'sum',\n filters,\n }),\n client.getMetricTimeSeries({\n name: ['mastra_model_total_output_tokens'],\n interval,\n aggregation: 'sum',\n filters,\n }),\n ]);\n\n const pointMap = new Map<number, TokenTimelineAccumulator>();\n addSeriesPoints(pointMap, inputRes.series[0], 'input');\n addSeriesPoints(pointMap, outputRes.series[0], 'output');\n\n const data = Array.from(pointMap.values())\n .sort((a, b) => a.tsMs - b.tsMs)\n .map(point => {\n const ts = new Date(point.tsMs);\n return {\n time: formatTime(ts, interval),\n tsMs: point.tsMs,\n input: point.input,\n output: point.output,\n total: point.input + point.output,\n cost: point.cost,\n costUnit: toCostUnit(point),\n };\n });\n\n return { data, interval };\n },\n });\n}\n"],"names":["useMastraClient","useMetricsFilters","useQuery"],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { useMastraClient } from '@mastra/react';
|
|
2
|
+
import { useQuery } from '@tanstack/react-query';
|
|
3
|
+
import { useMetricsFilters } from './use-metrics-filters.es.js';
|
|
4
|
+
|
|
5
|
+
function chooseTokenUsageInterval(datePreset) {
|
|
6
|
+
return datePreset === "24h" ? "1h" : "1d";
|
|
7
|
+
}
|
|
8
|
+
function formatTime(ts, interval) {
|
|
9
|
+
if (interval === "1h") {
|
|
10
|
+
return ts.toLocaleTimeString("en-US", { hour: "2-digit", minute: "2-digit", hour12: false });
|
|
11
|
+
}
|
|
12
|
+
return ts.toLocaleDateString("en-US", { month: "short", day: "2-digit" });
|
|
13
|
+
}
|
|
14
|
+
function addSeriesPoints(pointMap, series, key) {
|
|
15
|
+
for (const point of series?.points ?? []) {
|
|
16
|
+
const tsMs = new Date(point.timestamp).getTime();
|
|
17
|
+
if (!Number.isFinite(tsMs)) continue;
|
|
18
|
+
const existing = pointMap.get(tsMs) ?? {
|
|
19
|
+
tsMs,
|
|
20
|
+
input: 0,
|
|
21
|
+
output: 0,
|
|
22
|
+
cost: null,
|
|
23
|
+
costUnits: /* @__PURE__ */ new Set(),
|
|
24
|
+
hasUnknownCostUnit: false
|
|
25
|
+
};
|
|
26
|
+
existing[key] += point.value;
|
|
27
|
+
if (point.estimatedCost != null) {
|
|
28
|
+
existing.cost = (existing.cost ?? 0) + point.estimatedCost;
|
|
29
|
+
if (series?.costUnit) {
|
|
30
|
+
existing.costUnits.add(series.costUnit);
|
|
31
|
+
} else {
|
|
32
|
+
existing.hasUnknownCostUnit = true;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
pointMap.set(tsMs, existing);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function toCostUnit(entry) {
|
|
39
|
+
if (entry.cost == null || entry.hasUnknownCostUnit || entry.costUnits.size !== 1) return null;
|
|
40
|
+
return [...entry.costUnits][0] ?? null;
|
|
41
|
+
}
|
|
42
|
+
function useTokenUsageTimeSeries() {
|
|
43
|
+
const client = useMastraClient();
|
|
44
|
+
const { datePreset, filters, filterKey } = useMetricsFilters();
|
|
45
|
+
const interval = chooseTokenUsageInterval(datePreset);
|
|
46
|
+
return useQuery({
|
|
47
|
+
queryKey: ["metrics", "token-usage-timeseries", filterKey, interval],
|
|
48
|
+
queryFn: async () => {
|
|
49
|
+
const [inputRes, outputRes] = await Promise.all([
|
|
50
|
+
client.getMetricTimeSeries({
|
|
51
|
+
name: ["mastra_model_total_input_tokens"],
|
|
52
|
+
interval,
|
|
53
|
+
aggregation: "sum",
|
|
54
|
+
filters
|
|
55
|
+
}),
|
|
56
|
+
client.getMetricTimeSeries({
|
|
57
|
+
name: ["mastra_model_total_output_tokens"],
|
|
58
|
+
interval,
|
|
59
|
+
aggregation: "sum",
|
|
60
|
+
filters
|
|
61
|
+
})
|
|
62
|
+
]);
|
|
63
|
+
const pointMap = /* @__PURE__ */ new Map();
|
|
64
|
+
addSeriesPoints(pointMap, inputRes.series[0], "input");
|
|
65
|
+
addSeriesPoints(pointMap, outputRes.series[0], "output");
|
|
66
|
+
const data = Array.from(pointMap.values()).sort((a, b) => a.tsMs - b.tsMs).map((point) => {
|
|
67
|
+
const ts = new Date(point.tsMs);
|
|
68
|
+
return {
|
|
69
|
+
time: formatTime(ts, interval),
|
|
70
|
+
tsMs: point.tsMs,
|
|
71
|
+
input: point.input,
|
|
72
|
+
output: point.output,
|
|
73
|
+
total: point.input + point.output,
|
|
74
|
+
cost: point.cost,
|
|
75
|
+
costUnit: toCostUnit(point)
|
|
76
|
+
};
|
|
77
|
+
});
|
|
78
|
+
return { data, interval };
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export { useTokenUsageTimeSeries };
|
|
84
|
+
//# sourceMappingURL=use-token-usage-timeseries.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-token-usage-timeseries.es.js","sources":["../../../../src/domains/metrics/hooks/use-token-usage-timeseries.tsx"],"sourcesContent":["import { useMastraClient } from '@mastra/react';\nimport { useQuery } from '@tanstack/react-query';\nimport { useMetricsFilters } from './use-metrics-filters';\n\nexport type TokenUsageTimeSeriesInterval = '1h' | '1d';\n\nexport interface TokenTimelinePoint {\n time: string;\n tsMs: number;\n input: number;\n output: number;\n total: number;\n cost: number | null;\n costUnit: string | null;\n}\n\nexport interface TokenUsageTimeSeriesData {\n data: TokenTimelinePoint[];\n interval: TokenUsageTimeSeriesInterval;\n}\n\ntype TimeSeriesPoint = {\n timestamp: string | Date;\n value: number;\n estimatedCost?: number | null;\n};\n\ntype SeriesWithCost = {\n costUnit?: string | null;\n points: TimeSeriesPoint[];\n};\n\ntype TokenTimelineAccumulator = {\n tsMs: number;\n input: number;\n output: number;\n cost: number | null;\n costUnits: Set<string>;\n hasUnknownCostUnit: boolean;\n};\n\nfunction chooseTokenUsageInterval(\n datePreset: ReturnType<typeof useMetricsFilters>['datePreset'],\n): TokenUsageTimeSeriesInterval {\n return datePreset === '24h' ? '1h' : '1d';\n}\n\nfunction formatTime(ts: Date, interval: TokenUsageTimeSeriesInterval): string {\n if (interval === '1h') {\n return ts.toLocaleTimeString('en-US', { hour: '2-digit', minute: '2-digit', hour12: false });\n }\n return ts.toLocaleDateString('en-US', { month: 'short', day: '2-digit' });\n}\n\nfunction addSeriesPoints(\n pointMap: Map<number, TokenTimelineAccumulator>,\n series: SeriesWithCost | undefined,\n key: 'input' | 'output',\n) {\n for (const point of series?.points ?? []) {\n const tsMs = new Date(point.timestamp).getTime();\n if (!Number.isFinite(tsMs)) continue;\n\n const existing = pointMap.get(tsMs) ?? {\n tsMs,\n input: 0,\n output: 0,\n cost: null,\n costUnits: new Set<string>(),\n hasUnknownCostUnit: false,\n };\n\n existing[key] += point.value;\n\n if (point.estimatedCost != null) {\n existing.cost = (existing.cost ?? 0) + point.estimatedCost;\n if (series?.costUnit) {\n existing.costUnits.add(series.costUnit);\n } else {\n existing.hasUnknownCostUnit = true;\n }\n }\n\n pointMap.set(tsMs, existing);\n }\n}\n\nfunction toCostUnit(entry: TokenTimelineAccumulator): string | null {\n if (entry.cost == null || entry.hasUnknownCostUnit || entry.costUnits.size !== 1) return null;\n return [...entry.costUnits][0] ?? null;\n}\n\nexport function useTokenUsageTimeSeries() {\n const client = useMastraClient();\n const { datePreset, filters, filterKey } = useMetricsFilters();\n const interval = chooseTokenUsageInterval(datePreset);\n\n return useQuery({\n queryKey: ['metrics', 'token-usage-timeseries', filterKey, interval],\n queryFn: async (): Promise<TokenUsageTimeSeriesData> => {\n const [inputRes, outputRes] = await Promise.all([\n client.getMetricTimeSeries({\n name: ['mastra_model_total_input_tokens'],\n interval,\n aggregation: 'sum',\n filters,\n }),\n client.getMetricTimeSeries({\n name: ['mastra_model_total_output_tokens'],\n interval,\n aggregation: 'sum',\n filters,\n }),\n ]);\n\n const pointMap = new Map<number, TokenTimelineAccumulator>();\n addSeriesPoints(pointMap, inputRes.series[0], 'input');\n addSeriesPoints(pointMap, outputRes.series[0], 'output');\n\n const data = Array.from(pointMap.values())\n .sort((a, b) => a.tsMs - b.tsMs)\n .map(point => {\n const ts = new Date(point.tsMs);\n return {\n time: formatTime(ts, interval),\n tsMs: point.tsMs,\n input: point.input,\n output: point.output,\n total: point.input + point.output,\n cost: point.cost,\n costUnit: toCostUnit(point),\n };\n });\n\n return { data, interval };\n },\n });\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
|
|
5
|
+
const react = require('@mastra/react');
|
|
6
|
+
const reactQuery = require('@tanstack/react-query');
|
|
7
|
+
const domains_metrics_hooks_useMetricsFilters = require('./use-metrics-filters.cjs.js');
|
|
8
|
+
|
|
9
|
+
const TOP_N = 20;
|
|
10
|
+
function useTopActiveThreadsMetrics() {
|
|
11
|
+
const client = react.useMastraClient();
|
|
12
|
+
const { filters, filterKey } = domains_metrics_hooks_useMetricsFilters.useMetricsFilters();
|
|
13
|
+
return reactQuery.useQuery({
|
|
14
|
+
queryKey: ["metrics", "top-active-threads", filterKey],
|
|
15
|
+
queryFn: async () => {
|
|
16
|
+
const breakdownBase = {
|
|
17
|
+
groupBy: ["threadId", "resourceId"],
|
|
18
|
+
orderDirection: "DESC",
|
|
19
|
+
filters
|
|
20
|
+
};
|
|
21
|
+
const [runsRes, inputRes, outputRes] = await Promise.all([
|
|
22
|
+
client.getMetricBreakdown({
|
|
23
|
+
...breakdownBase,
|
|
24
|
+
name: ["mastra_agent_duration_ms"],
|
|
25
|
+
aggregation: "count",
|
|
26
|
+
limit: TOP_N
|
|
27
|
+
}),
|
|
28
|
+
// Token breakdowns use the same groupBy and a server-side TopK so the
|
|
29
|
+
// response stays bounded even when the underlying thread set has very
|
|
30
|
+
// high cardinality. Threads that are top-N by runs but not by tokens
|
|
31
|
+
// will display 0 tokens (an acceptable approximation in exchange for
|
|
32
|
+
// a bounded query).
|
|
33
|
+
client.getMetricBreakdown({
|
|
34
|
+
...breakdownBase,
|
|
35
|
+
name: ["mastra_model_total_input_tokens"],
|
|
36
|
+
aggregation: "sum",
|
|
37
|
+
limit: TOP_N
|
|
38
|
+
}),
|
|
39
|
+
client.getMetricBreakdown({
|
|
40
|
+
...breakdownBase,
|
|
41
|
+
name: ["mastra_model_total_output_tokens"],
|
|
42
|
+
aggregation: "sum",
|
|
43
|
+
limit: TOP_N
|
|
44
|
+
})
|
|
45
|
+
]);
|
|
46
|
+
const byThread = /* @__PURE__ */ new Map();
|
|
47
|
+
const ensure = (threadId) => {
|
|
48
|
+
if (!byThread.has(threadId)) byThread.set(threadId, { tokens: 0, cost: null, costUnit: null });
|
|
49
|
+
return byThread.get(threadId);
|
|
50
|
+
};
|
|
51
|
+
const foldTokens = (groups) => {
|
|
52
|
+
for (const group of groups) {
|
|
53
|
+
const threadId = group.dimensions.threadId;
|
|
54
|
+
if (!threadId) continue;
|
|
55
|
+
const entry = ensure(threadId);
|
|
56
|
+
entry.tokens += group.value;
|
|
57
|
+
if (group.estimatedCost != null) {
|
|
58
|
+
entry.cost = (entry.cost ?? 0) + group.estimatedCost;
|
|
59
|
+
if (group.costUnit) entry.costUnit = group.costUnit;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
foldTokens(inputRes.groups);
|
|
64
|
+
foldTokens(outputRes.groups);
|
|
65
|
+
return runsRes.groups.filter((group) => !!group.dimensions.threadId).map((group) => {
|
|
66
|
+
const threadId = group.dimensions.threadId;
|
|
67
|
+
const extra = byThread.get(threadId);
|
|
68
|
+
return {
|
|
69
|
+
threadId,
|
|
70
|
+
resourceId: group.dimensions.resourceId ?? null,
|
|
71
|
+
runs: group.value,
|
|
72
|
+
tokens: extra?.tokens ?? 0,
|
|
73
|
+
cost: extra?.cost ?? null,
|
|
74
|
+
costUnit: extra?.costUnit ?? null
|
|
75
|
+
};
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
exports.useTopActiveThreadsMetrics = useTopActiveThreadsMetrics;
|
|
82
|
+
//# sourceMappingURL=use-top-active-threads-metrics.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-top-active-threads-metrics.cjs.js","sources":["../../../../src/domains/metrics/hooks/use-top-active-threads-metrics.tsx"],"sourcesContent":["import { useMastraClient } from '@mastra/react';\nimport { useQuery } from '@tanstack/react-query';\n\nimport { useMetricsFilters } from './use-metrics-filters';\n\nexport interface ActiveThreadRow {\n threadId: string;\n resourceId: string | null;\n runs: number;\n tokens: number;\n cost: number | null;\n costUnit: string | null;\n}\n\nconst TOP_N = 20;\n\n/** Top Active Threads — the threads with the most agent runs in the selected\n * range. Server-side TopK (`ORDER BY value DESC LIMIT 20`) is required so the\n * query never returns the full thread set when cardinality is in the millions.\n *\n * Tokens + cost are joined in from parallel breakdowns on the same `threadId`\n * grouping so we don't need any new backend aggregation support. */\nexport function useTopActiveThreadsMetrics() {\n const client = useMastraClient();\n const { filters, filterKey } = useMetricsFilters();\n\n return useQuery({\n queryKey: ['metrics', 'top-active-threads', filterKey],\n queryFn: async (): Promise<ActiveThreadRow[]> => {\n const breakdownBase = {\n groupBy: ['threadId', 'resourceId'],\n orderDirection: 'DESC' as const,\n filters,\n };\n\n const [runsRes, inputRes, outputRes] = await Promise.all([\n client.getMetricBreakdown({\n ...breakdownBase,\n name: ['mastra_agent_duration_ms'],\n aggregation: 'count',\n limit: TOP_N,\n }),\n // Token breakdowns use the same groupBy and a server-side TopK so the\n // response stays bounded even when the underlying thread set has very\n // high cardinality. Threads that are top-N by runs but not by tokens\n // will display 0 tokens (an acceptable approximation in exchange for\n // a bounded query).\n client.getMetricBreakdown({\n ...breakdownBase,\n name: ['mastra_model_total_input_tokens'],\n aggregation: 'sum',\n limit: TOP_N,\n }),\n client.getMetricBreakdown({\n ...breakdownBase,\n name: ['mastra_model_total_output_tokens'],\n aggregation: 'sum',\n limit: TOP_N,\n }),\n ]);\n\n type Entry = { tokens: number; cost: number | null; costUnit: string | null };\n const byThread = new Map<string, Entry>();\n\n const ensure = (threadId: string): Entry => {\n if (!byThread.has(threadId)) byThread.set(threadId, { tokens: 0, cost: null, costUnit: null });\n return byThread.get(threadId)!;\n };\n\n const foldTokens = (groups: typeof inputRes.groups) => {\n for (const group of groups) {\n const threadId = group.dimensions.threadId;\n if (!threadId) continue;\n const entry = ensure(threadId as string);\n entry.tokens += group.value;\n if (group.estimatedCost != null) {\n entry.cost = (entry.cost ?? 0) + group.estimatedCost;\n if (group.costUnit) entry.costUnit = group.costUnit;\n }\n }\n };\n foldTokens(inputRes.groups);\n foldTokens(outputRes.groups);\n\n return runsRes.groups\n .filter(group => !!group.dimensions.threadId)\n .map(group => {\n const threadId = group.dimensions.threadId as string;\n const extra = byThread.get(threadId);\n return {\n threadId,\n resourceId: (group.dimensions.resourceId as string | undefined) ?? null,\n runs: group.value,\n tokens: extra?.tokens ?? 0,\n cost: extra?.cost ?? null,\n costUnit: extra?.costUnit ?? null,\n };\n });\n },\n });\n}\n"],"names":["useMastraClient","useMetricsFilters","useQuery"],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { useMastraClient } from '@mastra/react';
|
|
2
|
+
import { useQuery } from '@tanstack/react-query';
|
|
3
|
+
import { useMetricsFilters } from './use-metrics-filters.es.js';
|
|
4
|
+
|
|
5
|
+
const TOP_N = 20;
|
|
6
|
+
function useTopActiveThreadsMetrics() {
|
|
7
|
+
const client = useMastraClient();
|
|
8
|
+
const { filters, filterKey } = useMetricsFilters();
|
|
9
|
+
return useQuery({
|
|
10
|
+
queryKey: ["metrics", "top-active-threads", filterKey],
|
|
11
|
+
queryFn: async () => {
|
|
12
|
+
const breakdownBase = {
|
|
13
|
+
groupBy: ["threadId", "resourceId"],
|
|
14
|
+
orderDirection: "DESC",
|
|
15
|
+
filters
|
|
16
|
+
};
|
|
17
|
+
const [runsRes, inputRes, outputRes] = await Promise.all([
|
|
18
|
+
client.getMetricBreakdown({
|
|
19
|
+
...breakdownBase,
|
|
20
|
+
name: ["mastra_agent_duration_ms"],
|
|
21
|
+
aggregation: "count",
|
|
22
|
+
limit: TOP_N
|
|
23
|
+
}),
|
|
24
|
+
// Token breakdowns use the same groupBy and a server-side TopK so the
|
|
25
|
+
// response stays bounded even when the underlying thread set has very
|
|
26
|
+
// high cardinality. Threads that are top-N by runs but not by tokens
|
|
27
|
+
// will display 0 tokens (an acceptable approximation in exchange for
|
|
28
|
+
// a bounded query).
|
|
29
|
+
client.getMetricBreakdown({
|
|
30
|
+
...breakdownBase,
|
|
31
|
+
name: ["mastra_model_total_input_tokens"],
|
|
32
|
+
aggregation: "sum",
|
|
33
|
+
limit: TOP_N
|
|
34
|
+
}),
|
|
35
|
+
client.getMetricBreakdown({
|
|
36
|
+
...breakdownBase,
|
|
37
|
+
name: ["mastra_model_total_output_tokens"],
|
|
38
|
+
aggregation: "sum",
|
|
39
|
+
limit: TOP_N
|
|
40
|
+
})
|
|
41
|
+
]);
|
|
42
|
+
const byThread = /* @__PURE__ */ new Map();
|
|
43
|
+
const ensure = (threadId) => {
|
|
44
|
+
if (!byThread.has(threadId)) byThread.set(threadId, { tokens: 0, cost: null, costUnit: null });
|
|
45
|
+
return byThread.get(threadId);
|
|
46
|
+
};
|
|
47
|
+
const foldTokens = (groups) => {
|
|
48
|
+
for (const group of groups) {
|
|
49
|
+
const threadId = group.dimensions.threadId;
|
|
50
|
+
if (!threadId) continue;
|
|
51
|
+
const entry = ensure(threadId);
|
|
52
|
+
entry.tokens += group.value;
|
|
53
|
+
if (group.estimatedCost != null) {
|
|
54
|
+
entry.cost = (entry.cost ?? 0) + group.estimatedCost;
|
|
55
|
+
if (group.costUnit) entry.costUnit = group.costUnit;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
foldTokens(inputRes.groups);
|
|
60
|
+
foldTokens(outputRes.groups);
|
|
61
|
+
return runsRes.groups.filter((group) => !!group.dimensions.threadId).map((group) => {
|
|
62
|
+
const threadId = group.dimensions.threadId;
|
|
63
|
+
const extra = byThread.get(threadId);
|
|
64
|
+
return {
|
|
65
|
+
threadId,
|
|
66
|
+
resourceId: group.dimensions.resourceId ?? null,
|
|
67
|
+
runs: group.value,
|
|
68
|
+
tokens: extra?.tokens ?? 0,
|
|
69
|
+
cost: extra?.cost ?? null,
|
|
70
|
+
costUnit: extra?.costUnit ?? null
|
|
71
|
+
};
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export { useTopActiveThreadsMetrics };
|
|
78
|
+
//# sourceMappingURL=use-top-active-threads-metrics.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-top-active-threads-metrics.es.js","sources":["../../../../src/domains/metrics/hooks/use-top-active-threads-metrics.tsx"],"sourcesContent":["import { useMastraClient } from '@mastra/react';\nimport { useQuery } from '@tanstack/react-query';\n\nimport { useMetricsFilters } from './use-metrics-filters';\n\nexport interface ActiveThreadRow {\n threadId: string;\n resourceId: string | null;\n runs: number;\n tokens: number;\n cost: number | null;\n costUnit: string | null;\n}\n\nconst TOP_N = 20;\n\n/** Top Active Threads — the threads with the most agent runs in the selected\n * range. Server-side TopK (`ORDER BY value DESC LIMIT 20`) is required so the\n * query never returns the full thread set when cardinality is in the millions.\n *\n * Tokens + cost are joined in from parallel breakdowns on the same `threadId`\n * grouping so we don't need any new backend aggregation support. */\nexport function useTopActiveThreadsMetrics() {\n const client = useMastraClient();\n const { filters, filterKey } = useMetricsFilters();\n\n return useQuery({\n queryKey: ['metrics', 'top-active-threads', filterKey],\n queryFn: async (): Promise<ActiveThreadRow[]> => {\n const breakdownBase = {\n groupBy: ['threadId', 'resourceId'],\n orderDirection: 'DESC' as const,\n filters,\n };\n\n const [runsRes, inputRes, outputRes] = await Promise.all([\n client.getMetricBreakdown({\n ...breakdownBase,\n name: ['mastra_agent_duration_ms'],\n aggregation: 'count',\n limit: TOP_N,\n }),\n // Token breakdowns use the same groupBy and a server-side TopK so the\n // response stays bounded even when the underlying thread set has very\n // high cardinality. Threads that are top-N by runs but not by tokens\n // will display 0 tokens (an acceptable approximation in exchange for\n // a bounded query).\n client.getMetricBreakdown({\n ...breakdownBase,\n name: ['mastra_model_total_input_tokens'],\n aggregation: 'sum',\n limit: TOP_N,\n }),\n client.getMetricBreakdown({\n ...breakdownBase,\n name: ['mastra_model_total_output_tokens'],\n aggregation: 'sum',\n limit: TOP_N,\n }),\n ]);\n\n type Entry = { tokens: number; cost: number | null; costUnit: string | null };\n const byThread = new Map<string, Entry>();\n\n const ensure = (threadId: string): Entry => {\n if (!byThread.has(threadId)) byThread.set(threadId, { tokens: 0, cost: null, costUnit: null });\n return byThread.get(threadId)!;\n };\n\n const foldTokens = (groups: typeof inputRes.groups) => {\n for (const group of groups) {\n const threadId = group.dimensions.threadId;\n if (!threadId) continue;\n const entry = ensure(threadId as string);\n entry.tokens += group.value;\n if (group.estimatedCost != null) {\n entry.cost = (entry.cost ?? 0) + group.estimatedCost;\n if (group.costUnit) entry.costUnit = group.costUnit;\n }\n }\n };\n foldTokens(inputRes.groups);\n foldTokens(outputRes.groups);\n\n return runsRes.groups\n .filter(group => !!group.dimensions.threadId)\n .map(group => {\n const threadId = group.dimensions.threadId as string;\n const extra = byThread.get(threadId);\n return {\n threadId,\n resourceId: (group.dimensions.resourceId as string | undefined) ?? null,\n runs: group.value,\n tokens: extra?.tokens ?? 0,\n cost: extra?.cost ?? null,\n costUnit: extra?.costUnit ?? null,\n };\n });\n },\n });\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
|
|
5
|
+
const react = require('@mastra/react');
|
|
6
|
+
const reactQuery = require('@tanstack/react-query');
|
|
7
|
+
const domains_metrics_hooks_useMetricsFilters = require('./use-metrics-filters.cjs.js');
|
|
8
|
+
|
|
9
|
+
const TOP_N = 20;
|
|
10
|
+
function useTopResourcesByThreadsMetrics() {
|
|
11
|
+
const client = react.useMastraClient();
|
|
12
|
+
const { filters, filterKey } = domains_metrics_hooks_useMetricsFilters.useMetricsFilters();
|
|
13
|
+
return reactQuery.useQuery({
|
|
14
|
+
queryKey: ["metrics", "top-resources-by-threads", filterKey],
|
|
15
|
+
queryFn: async () => {
|
|
16
|
+
const breakdownBase = {
|
|
17
|
+
groupBy: ["resourceId"],
|
|
18
|
+
orderDirection: "DESC",
|
|
19
|
+
filters
|
|
20
|
+
};
|
|
21
|
+
const [threadsRes, inputRes, outputRes] = await Promise.all([
|
|
22
|
+
client.getMetricBreakdown({
|
|
23
|
+
...breakdownBase,
|
|
24
|
+
name: ["mastra_agent_duration_ms"],
|
|
25
|
+
aggregation: "count_distinct",
|
|
26
|
+
distinctColumn: "threadId",
|
|
27
|
+
limit: TOP_N
|
|
28
|
+
}),
|
|
29
|
+
// Token breakdowns use the same groupBy and a server-side TopK so the
|
|
30
|
+
// response stays bounded even when the underlying resource set has very
|
|
31
|
+
// high cardinality. Resources that are top-N by thread count but not by
|
|
32
|
+
// tokens will display 0 tokens (an acceptable approximation in exchange
|
|
33
|
+
// for a bounded query).
|
|
34
|
+
client.getMetricBreakdown({
|
|
35
|
+
...breakdownBase,
|
|
36
|
+
name: ["mastra_model_total_input_tokens"],
|
|
37
|
+
aggregation: "sum",
|
|
38
|
+
limit: TOP_N
|
|
39
|
+
}),
|
|
40
|
+
client.getMetricBreakdown({
|
|
41
|
+
...breakdownBase,
|
|
42
|
+
name: ["mastra_model_total_output_tokens"],
|
|
43
|
+
aggregation: "sum",
|
|
44
|
+
limit: TOP_N
|
|
45
|
+
})
|
|
46
|
+
]);
|
|
47
|
+
const byResource = /* @__PURE__ */ new Map();
|
|
48
|
+
const ensure = (resourceId) => {
|
|
49
|
+
if (!byResource.has(resourceId)) byResource.set(resourceId, { tokens: 0, cost: null, costUnit: null });
|
|
50
|
+
return byResource.get(resourceId);
|
|
51
|
+
};
|
|
52
|
+
const foldTokens = (groups) => {
|
|
53
|
+
for (const group of groups) {
|
|
54
|
+
const resourceId = group.dimensions.resourceId;
|
|
55
|
+
if (!resourceId) continue;
|
|
56
|
+
const entry = ensure(resourceId);
|
|
57
|
+
entry.tokens += group.value;
|
|
58
|
+
if (group.estimatedCost != null) {
|
|
59
|
+
entry.cost = (entry.cost ?? 0) + group.estimatedCost;
|
|
60
|
+
if (group.costUnit) entry.costUnit = group.costUnit;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
foldTokens(inputRes.groups);
|
|
65
|
+
foldTokens(outputRes.groups);
|
|
66
|
+
return threadsRes.groups.filter((group) => !!group.dimensions.resourceId).map((group) => {
|
|
67
|
+
const resourceId = group.dimensions.resourceId;
|
|
68
|
+
const extra = byResource.get(resourceId);
|
|
69
|
+
return {
|
|
70
|
+
resourceId,
|
|
71
|
+
threadCount: group.value,
|
|
72
|
+
tokens: extra?.tokens ?? 0,
|
|
73
|
+
cost: extra?.cost ?? null,
|
|
74
|
+
costUnit: extra?.costUnit ?? null
|
|
75
|
+
};
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
exports.useTopResourcesByThreadsMetrics = useTopResourcesByThreadsMetrics;
|
|
82
|
+
//# sourceMappingURL=use-top-resources-by-threads-metrics.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-top-resources-by-threads-metrics.cjs.js","sources":["../../../../src/domains/metrics/hooks/use-top-resources-by-threads-metrics.tsx"],"sourcesContent":["import { useMastraClient } from '@mastra/react';\nimport { useQuery } from '@tanstack/react-query';\n\nimport { useMetricsFilters } from './use-metrics-filters';\n\nexport interface ResourceThreadsRow {\n resourceId: string;\n threadCount: number;\n tokens: number;\n cost: number | null;\n costUnit: string | null;\n}\n\nconst TOP_N = 20;\n\n/** Top Resources by Thread Count — the resources with the most distinct threads\n * in the selected range. Uses `count_distinct(threadId)` per `resourceId`,\n * with server-side TopK (`ORDER BY value DESC LIMIT 20`).\n *\n * Tokens + cost are joined in from parallel breakdowns on `resourceId` so the\n * table can show cost/usage without a separate backend aggregation. */\nexport function useTopResourcesByThreadsMetrics() {\n const client = useMastraClient();\n const { filters, filterKey } = useMetricsFilters();\n\n return useQuery({\n queryKey: ['metrics', 'top-resources-by-threads', filterKey],\n queryFn: async (): Promise<ResourceThreadsRow[]> => {\n const breakdownBase = {\n groupBy: ['resourceId'],\n orderDirection: 'DESC' as const,\n filters,\n };\n\n const [threadsRes, inputRes, outputRes] = await Promise.all([\n client.getMetricBreakdown({\n ...breakdownBase,\n name: ['mastra_agent_duration_ms'],\n aggregation: 'count_distinct',\n distinctColumn: 'threadId' as never,\n limit: TOP_N,\n }),\n // Token breakdowns use the same groupBy and a server-side TopK so the\n // response stays bounded even when the underlying resource set has very\n // high cardinality. Resources that are top-N by thread count but not by\n // tokens will display 0 tokens (an acceptable approximation in exchange\n // for a bounded query).\n client.getMetricBreakdown({\n ...breakdownBase,\n name: ['mastra_model_total_input_tokens'],\n aggregation: 'sum',\n limit: TOP_N,\n }),\n client.getMetricBreakdown({\n ...breakdownBase,\n name: ['mastra_model_total_output_tokens'],\n aggregation: 'sum',\n limit: TOP_N,\n }),\n ]);\n\n type Entry = { tokens: number; cost: number | null; costUnit: string | null };\n const byResource = new Map<string, Entry>();\n\n const ensure = (resourceId: string): Entry => {\n if (!byResource.has(resourceId)) byResource.set(resourceId, { tokens: 0, cost: null, costUnit: null });\n return byResource.get(resourceId)!;\n };\n\n const foldTokens = (groups: typeof inputRes.groups) => {\n for (const group of groups) {\n const resourceId = group.dimensions.resourceId;\n if (!resourceId) continue;\n const entry = ensure(resourceId as string);\n entry.tokens += group.value;\n if (group.estimatedCost != null) {\n entry.cost = (entry.cost ?? 0) + group.estimatedCost;\n if (group.costUnit) entry.costUnit = group.costUnit;\n }\n }\n };\n foldTokens(inputRes.groups);\n foldTokens(outputRes.groups);\n\n return threadsRes.groups\n .filter(group => !!group.dimensions.resourceId)\n .map(group => {\n const resourceId = group.dimensions.resourceId as string;\n const extra = byResource.get(resourceId);\n return {\n resourceId,\n threadCount: group.value,\n tokens: extra?.tokens ?? 0,\n cost: extra?.cost ?? null,\n costUnit: extra?.costUnit ?? null,\n };\n });\n },\n });\n}\n"],"names":["useMastraClient","useMetricsFilters","useQuery"],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { useMastraClient } from '@mastra/react';
|
|
2
|
+
import { useQuery } from '@tanstack/react-query';
|
|
3
|
+
import { useMetricsFilters } from './use-metrics-filters.es.js';
|
|
4
|
+
|
|
5
|
+
const TOP_N = 20;
|
|
6
|
+
function useTopResourcesByThreadsMetrics() {
|
|
7
|
+
const client = useMastraClient();
|
|
8
|
+
const { filters, filterKey } = useMetricsFilters();
|
|
9
|
+
return useQuery({
|
|
10
|
+
queryKey: ["metrics", "top-resources-by-threads", filterKey],
|
|
11
|
+
queryFn: async () => {
|
|
12
|
+
const breakdownBase = {
|
|
13
|
+
groupBy: ["resourceId"],
|
|
14
|
+
orderDirection: "DESC",
|
|
15
|
+
filters
|
|
16
|
+
};
|
|
17
|
+
const [threadsRes, inputRes, outputRes] = await Promise.all([
|
|
18
|
+
client.getMetricBreakdown({
|
|
19
|
+
...breakdownBase,
|
|
20
|
+
name: ["mastra_agent_duration_ms"],
|
|
21
|
+
aggregation: "count_distinct",
|
|
22
|
+
distinctColumn: "threadId",
|
|
23
|
+
limit: TOP_N
|
|
24
|
+
}),
|
|
25
|
+
// Token breakdowns use the same groupBy and a server-side TopK so the
|
|
26
|
+
// response stays bounded even when the underlying resource set has very
|
|
27
|
+
// high cardinality. Resources that are top-N by thread count but not by
|
|
28
|
+
// tokens will display 0 tokens (an acceptable approximation in exchange
|
|
29
|
+
// for a bounded query).
|
|
30
|
+
client.getMetricBreakdown({
|
|
31
|
+
...breakdownBase,
|
|
32
|
+
name: ["mastra_model_total_input_tokens"],
|
|
33
|
+
aggregation: "sum",
|
|
34
|
+
limit: TOP_N
|
|
35
|
+
}),
|
|
36
|
+
client.getMetricBreakdown({
|
|
37
|
+
...breakdownBase,
|
|
38
|
+
name: ["mastra_model_total_output_tokens"],
|
|
39
|
+
aggregation: "sum",
|
|
40
|
+
limit: TOP_N
|
|
41
|
+
})
|
|
42
|
+
]);
|
|
43
|
+
const byResource = /* @__PURE__ */ new Map();
|
|
44
|
+
const ensure = (resourceId) => {
|
|
45
|
+
if (!byResource.has(resourceId)) byResource.set(resourceId, { tokens: 0, cost: null, costUnit: null });
|
|
46
|
+
return byResource.get(resourceId);
|
|
47
|
+
};
|
|
48
|
+
const foldTokens = (groups) => {
|
|
49
|
+
for (const group of groups) {
|
|
50
|
+
const resourceId = group.dimensions.resourceId;
|
|
51
|
+
if (!resourceId) continue;
|
|
52
|
+
const entry = ensure(resourceId);
|
|
53
|
+
entry.tokens += group.value;
|
|
54
|
+
if (group.estimatedCost != null) {
|
|
55
|
+
entry.cost = (entry.cost ?? 0) + group.estimatedCost;
|
|
56
|
+
if (group.costUnit) entry.costUnit = group.costUnit;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
foldTokens(inputRes.groups);
|
|
61
|
+
foldTokens(outputRes.groups);
|
|
62
|
+
return threadsRes.groups.filter((group) => !!group.dimensions.resourceId).map((group) => {
|
|
63
|
+
const resourceId = group.dimensions.resourceId;
|
|
64
|
+
const extra = byResource.get(resourceId);
|
|
65
|
+
return {
|
|
66
|
+
resourceId,
|
|
67
|
+
threadCount: group.value,
|
|
68
|
+
tokens: extra?.tokens ?? 0,
|
|
69
|
+
cost: extra?.cost ?? null,
|
|
70
|
+
costUnit: extra?.costUnit ?? null
|
|
71
|
+
};
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export { useTopResourcesByThreadsMetrics };
|
|
78
|
+
//# sourceMappingURL=use-top-resources-by-threads-metrics.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-top-resources-by-threads-metrics.es.js","sources":["../../../../src/domains/metrics/hooks/use-top-resources-by-threads-metrics.tsx"],"sourcesContent":["import { useMastraClient } from '@mastra/react';\nimport { useQuery } from '@tanstack/react-query';\n\nimport { useMetricsFilters } from './use-metrics-filters';\n\nexport interface ResourceThreadsRow {\n resourceId: string;\n threadCount: number;\n tokens: number;\n cost: number | null;\n costUnit: string | null;\n}\n\nconst TOP_N = 20;\n\n/** Top Resources by Thread Count — the resources with the most distinct threads\n * in the selected range. Uses `count_distinct(threadId)` per `resourceId`,\n * with server-side TopK (`ORDER BY value DESC LIMIT 20`).\n *\n * Tokens + cost are joined in from parallel breakdowns on `resourceId` so the\n * table can show cost/usage without a separate backend aggregation. */\nexport function useTopResourcesByThreadsMetrics() {\n const client = useMastraClient();\n const { filters, filterKey } = useMetricsFilters();\n\n return useQuery({\n queryKey: ['metrics', 'top-resources-by-threads', filterKey],\n queryFn: async (): Promise<ResourceThreadsRow[]> => {\n const breakdownBase = {\n groupBy: ['resourceId'],\n orderDirection: 'DESC' as const,\n filters,\n };\n\n const [threadsRes, inputRes, outputRes] = await Promise.all([\n client.getMetricBreakdown({\n ...breakdownBase,\n name: ['mastra_agent_duration_ms'],\n aggregation: 'count_distinct',\n distinctColumn: 'threadId' as never,\n limit: TOP_N,\n }),\n // Token breakdowns use the same groupBy and a server-side TopK so the\n // response stays bounded even when the underlying resource set has very\n // high cardinality. Resources that are top-N by thread count but not by\n // tokens will display 0 tokens (an acceptable approximation in exchange\n // for a bounded query).\n client.getMetricBreakdown({\n ...breakdownBase,\n name: ['mastra_model_total_input_tokens'],\n aggregation: 'sum',\n limit: TOP_N,\n }),\n client.getMetricBreakdown({\n ...breakdownBase,\n name: ['mastra_model_total_output_tokens'],\n aggregation: 'sum',\n limit: TOP_N,\n }),\n ]);\n\n type Entry = { tokens: number; cost: number | null; costUnit: string | null };\n const byResource = new Map<string, Entry>();\n\n const ensure = (resourceId: string): Entry => {\n if (!byResource.has(resourceId)) byResource.set(resourceId, { tokens: 0, cost: null, costUnit: null });\n return byResource.get(resourceId)!;\n };\n\n const foldTokens = (groups: typeof inputRes.groups) => {\n for (const group of groups) {\n const resourceId = group.dimensions.resourceId;\n if (!resourceId) continue;\n const entry = ensure(resourceId as string);\n entry.tokens += group.value;\n if (group.estimatedCost != null) {\n entry.cost = (entry.cost ?? 0) + group.estimatedCost;\n if (group.costUnit) entry.costUnit = group.costUnit;\n }\n }\n };\n foldTokens(inputRes.groups);\n foldTokens(outputRes.groups);\n\n return threadsRes.groups\n .filter(group => !!group.dimensions.resourceId)\n .map(group => {\n const resourceId = group.dimensions.resourceId as string;\n const extra = byResource.get(resourceId);\n return {\n resourceId,\n threadCount: group.value,\n tokens: extra?.tokens ?? 0,\n cost: extra?.cost ?? null,\n costUnit: extra?.costUnit ?? null,\n };\n });\n },\n });\n}\n"],"names":[],"mappings":";;;;AAaA,MAAM,KAAA,GAAQ,EAAA;AAQP,SAAS,+BAAA,GAAkC;AAChD,EAAA,MAAM,SAAS,eAAA,EAAgB;AAC/B,EAAA,MAAM,EAAE,OAAA,EAAS,SAAA,EAAU,GAAI,iBAAA,EAAkB;AAEjD,EAAA,OAAO,QAAA,CAAS;AAAA,IACd,QAAA,EAAU,CAAC,SAAA,EAAW,0BAAA,EAA4B,SAAS,CAAA;AAAA,IAC3D,SAAS,YAA2C;AAClD,MAAA,MAAM,aAAA,GAAgB;AAAA,QACpB,OAAA,EAAS,CAAC,YAAY,CAAA;AAAA,QACtB,cAAA,EAAgB,MAAA;AAAA,QAChB;AAAA,OACF;AAEA,MAAA,MAAM,CAAC,UAAA,EAAY,QAAA,EAAU,SAAS,CAAA,GAAI,MAAM,QAAQ,GAAA,CAAI;AAAA,QAC1D,OAAO,kBAAA,CAAmB;AAAA,UACxB,GAAG,aAAA;AAAA,UACH,IAAA,EAAM,CAAC,0BAA0B,CAAA;AAAA,UACjC,WAAA,EAAa,gBAAA;AAAA,UACb,cAAA,EAAgB,UAAA;AAAA,UAChB,KAAA,EAAO;AAAA,SACR,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAMD,OAAO,kBAAA,CAAmB;AAAA,UACxB,GAAG,aAAA;AAAA,UACH,IAAA,EAAM,CAAC,iCAAiC,CAAA;AAAA,UACxC,WAAA,EAAa,KAAA;AAAA,UACb,KAAA,EAAO;AAAA,SACR,CAAA;AAAA,QACD,OAAO,kBAAA,CAAmB;AAAA,UACxB,GAAG,aAAA;AAAA,UACH,IAAA,EAAM,CAAC,kCAAkC,CAAA;AAAA,UACzC,WAAA,EAAa,KAAA;AAAA,UACb,KAAA,EAAO;AAAA,SACR;AAAA,OACF,CAAA;AAGD,MAAA,MAAM,UAAA,uBAAiB,GAAA,EAAmB;AAE1C,MAAA,MAAM,MAAA,GAAS,CAAC,UAAA,KAA8B;AAC5C,QAAA,IAAI,CAAC,UAAA,CAAW,GAAA,CAAI,UAAU,GAAG,UAAA,CAAW,GAAA,CAAI,UAAA,EAAY,EAAE,QAAQ,CAAA,EAAG,IAAA,EAAM,IAAA,EAAM,QAAA,EAAU,MAAM,CAAA;AACrG,QAAA,OAAO,UAAA,CAAW,IAAI,UAAU,CAAA;AAAA,MAClC,CAAA;AAEA,MAAA,MAAM,UAAA,GAAa,CAAC,MAAA,KAAmC;AACrD,QAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,UAAA,MAAM,UAAA,GAAa,MAAM,UAAA,CAAW,UAAA;AACpC,UAAA,IAAI,CAAC,UAAA,EAAY;AACjB,UAAA,MAAM,KAAA,GAAQ,OAAO,UAAoB,CAAA;AACzC,UAAA,KAAA,CAAM,UAAU,KAAA,CAAM,KAAA;AACtB,UAAA,IAAI,KAAA,CAAM,iBAAiB,IAAA,EAAM;AAC/B,YAAA,KAAA,CAAM,IAAA,GAAA,CAAQ,KAAA,CAAM,IAAA,IAAQ,CAAA,IAAK,KAAA,CAAM,aAAA;AACvC,YAAA,IAAI,KAAA,CAAM,QAAA,EAAU,KAAA,CAAM,QAAA,GAAW,KAAA,CAAM,QAAA;AAAA,UAC7C;AAAA,QACF;AAAA,MACF,CAAA;AACA,MAAA,UAAA,CAAW,SAAS,MAAM,CAAA;AAC1B,MAAA,UAAA,CAAW,UAAU,MAAM,CAAA;AAE3B,MAAA,OAAO,UAAA,CAAW,MAAA,CACf,MAAA,CAAO,CAAA,KAAA,KAAS,CAAC,CAAC,KAAA,CAAM,UAAA,CAAW,UAAU,CAAA,CAC7C,GAAA,CAAI,CAAA,KAAA,KAAS;AACZ,QAAA,MAAM,UAAA,GAAa,MAAM,UAAA,CAAW,UAAA;AACpC,QAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,GAAA,CAAI,UAAU,CAAA;AACvC,QAAA,OAAO;AAAA,UACL,UAAA;AAAA,UACA,aAAa,KAAA,CAAM,KAAA;AAAA,UACnB,MAAA,EAAQ,OAAO,MAAA,IAAU,CAAA;AAAA,UACzB,IAAA,EAAM,OAAO,IAAA,IAAQ,IAAA;AAAA,UACrB,QAAA,EAAU,OAAO,QAAA,IAAY;AAAA,SAC/B;AAAA,MACF,CAAC,CAAA;AAAA,IACL;AAAA,GACD,CAAA;AACH;;;;"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
4
|
+
|
|
5
|
+
const react = require('@mastra/react');
|
|
6
|
+
const reactQuery = require('@tanstack/react-query');
|
|
7
|
+
const domains_metrics_hooks_useMetricsFilters = require('./use-metrics-filters.cjs.js');
|
|
8
|
+
|
|
9
|
+
function useTotalTokensKpiMetrics() {
|
|
10
|
+
const client = react.useMastraClient();
|
|
11
|
+
const { filters, filterKey } = domains_metrics_hooks_useMetricsFilters.useMetricsFilters();
|
|
12
|
+
return reactQuery.useQuery({
|
|
13
|
+
queryKey: ["metrics", "total-tokens-kpi", filterKey],
|
|
14
|
+
queryFn: async () => {
|
|
15
|
+
const [input, output] = await Promise.all([
|
|
16
|
+
client.getMetricAggregate({
|
|
17
|
+
name: ["mastra_model_total_input_tokens"],
|
|
18
|
+
aggregation: "sum",
|
|
19
|
+
filters,
|
|
20
|
+
comparePeriod: "previous_period"
|
|
21
|
+
}),
|
|
22
|
+
client.getMetricAggregate({
|
|
23
|
+
name: ["mastra_model_total_output_tokens"],
|
|
24
|
+
aggregation: "sum",
|
|
25
|
+
filters,
|
|
26
|
+
comparePeriod: "previous_period"
|
|
27
|
+
})
|
|
28
|
+
]);
|
|
29
|
+
const hasCurrent = input.value != null || output.value != null;
|
|
30
|
+
const hasPrevious = input.previousValue != null || output.previousValue != null;
|
|
31
|
+
const value = (input.value ?? 0) + (output.value ?? 0);
|
|
32
|
+
const previousValue = (input.previousValue ?? 0) + (output.previousValue ?? 0);
|
|
33
|
+
const changePercent = hasPrevious && previousValue > 0 ? (value - previousValue) / previousValue * 100 : null;
|
|
34
|
+
return {
|
|
35
|
+
value: hasCurrent ? value : null,
|
|
36
|
+
previousValue: hasPrevious ? previousValue : null,
|
|
37
|
+
changePercent
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
exports.useTotalTokensKpiMetrics = useTotalTokensKpiMetrics;
|
|
44
|
+
//# sourceMappingURL=use-total-tokens-kpi-metrics.cjs.js.map
|