@tai42/studio-sdk 16.0.0 → 17.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/code-block.js +1 -1
- package/dist/components/code-block.js.map +1 -1
- package/dist/components/confirm-dialog.js +1 -1
- package/dist/components/confirm-dialog.js.map +1 -1
- package/dist/components/copy-field.js +1 -1
- package/dist/components/copy-field.js.map +1 -1
- package/dist/components/date-range-picker.d.ts.map +1 -1
- package/dist/components/date-range-picker.js.map +1 -1
- package/dist/components/dialog.d.ts.map +1 -1
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/dirty-guard.d.ts.map +1 -1
- package/dist/components/dirty-guard.js +1 -1
- package/dist/components/dirty-guard.js.map +1 -1
- package/dist/components/explorer-body.d.ts +49 -0
- package/dist/components/explorer-body.d.ts.map +1 -0
- package/dist/components/explorer-body.js +67 -0
- package/dist/components/explorer-body.js.map +1 -0
- package/dist/components/explorer-page-size.d.ts +4 -0
- package/dist/components/explorer-page-size.d.ts.map +1 -0
- package/dist/components/explorer-page-size.js +36 -0
- package/dist/components/explorer-page-size.js.map +1 -0
- package/dist/components/explorer-tag-filter.d.ts +17 -0
- package/dist/components/explorer-tag-filter.d.ts.map +1 -0
- package/dist/components/explorer-tag-filter.js +29 -0
- package/dist/components/explorer-tag-filter.js.map +1 -0
- package/dist/components/explorer-tags.d.ts +22 -0
- package/dist/components/explorer-tags.d.ts.map +1 -0
- package/dist/components/explorer-tags.js +51 -0
- package/dist/components/explorer-tags.js.map +1 -0
- package/dist/components/explorer-view.d.ts +3 -17
- package/dist/components/explorer-view.d.ts.map +1 -1
- package/dist/components/explorer-view.js +53 -170
- package/dist/components/explorer-view.js.map +1 -1
- package/dist/components/extension-combo-builder.d.ts +1 -6
- package/dist/components/extension-combo-builder.d.ts.map +1 -1
- package/dist/components/extension-combo-builder.js +4 -79
- package/dist/components/extension-combo-builder.js.map +1 -1
- package/dist/components/extension-combo-parts.d.ts +44 -0
- package/dist/components/extension-combo-parts.d.ts.map +1 -0
- package/dist/components/extension-combo-parts.js +52 -0
- package/dist/components/extension-combo-parts.js.map +1 -0
- package/dist/components/field.d.ts +8 -0
- package/dist/components/field.d.ts.map +1 -1
- package/dist/components/field.js +0 -8
- package/dist/components/field.js.map +1 -1
- package/dist/components/fleet-report.d.ts +1 -1
- package/dist/components/fleet-report.d.ts.map +1 -1
- package/dist/components/fleet-report.js +51 -37
- package/dist/components/fleet-report.js.map +1 -1
- package/dist/components/folder-nav.d.ts.map +1 -1
- package/dist/components/folder-nav.js +1 -1
- package/dist/components/folder-nav.js.map +1 -1
- package/dist/components/form-dialog.d.ts.map +1 -1
- package/dist/components/form-dialog.js +1 -1
- package/dist/components/form-dialog.js.map +1 -1
- package/dist/components/icons/chrome-marks.d.ts +50 -0
- package/dist/components/icons/chrome-marks.d.ts.map +1 -0
- package/dist/components/icons/chrome-marks.js +51 -0
- package/dist/components/icons/chrome-marks.js.map +1 -0
- package/dist/components/icons/icon-frame.d.ts +29 -0
- package/dist/components/icons/icon-frame.d.ts.map +1 -0
- package/dist/components/icons/icon-frame.js +19 -0
- package/dist/components/icons/icon-frame.js.map +1 -0
- package/dist/components/icons/index.d.ts +40 -0
- package/dist/components/icons/index.d.ts.map +1 -0
- package/dist/components/icons/index.js +39 -0
- package/dist/components/icons/index.js.map +1 -0
- package/dist/components/icons/nav-map.d.ts +14 -0
- package/dist/components/icons/nav-map.d.ts.map +1 -0
- package/dist/components/icons/nav-map.js +28 -0
- package/dist/components/icons/nav-map.js.map +1 -0
- package/dist/components/icons/nav-marks.d.ts +44 -0
- package/dist/components/icons/nav-marks.d.ts.map +1 -0
- package/dist/components/icons/nav-marks.js +45 -0
- package/dist/components/icons/nav-marks.js.map +1 -0
- package/dist/components/icons/status-marks.d.ts +21 -0
- package/dist/components/icons/status-marks.d.ts.map +1 -0
- package/dist/components/icons/status-marks.js +22 -0
- package/dist/components/icons/status-marks.js.map +1 -0
- package/dist/components/icons/theme-marks.d.ts +9 -0
- package/dist/components/icons/theme-marks.d.ts.map +1 -0
- package/dist/components/icons/theme-marks.js +10 -0
- package/dist/components/icons/theme-marks.js.map +1 -0
- package/dist/components/inputs.js.map +1 -1
- package/dist/components/json-diff.d.ts.map +1 -1
- package/dist/components/json-diff.js +1 -3
- package/dist/components/json-diff.js.map +1 -1
- package/dist/components/json-tree-context.d.ts +13 -0
- package/dist/components/json-tree-context.d.ts.map +1 -0
- package/dist/components/json-tree-context.js +15 -0
- package/dist/components/json-tree-context.js.map +1 -0
- package/dist/components/json-tree-model.d.ts +56 -0
- package/dist/components/json-tree-model.d.ts.map +1 -0
- package/dist/components/json-tree-model.js +125 -0
- package/dist/components/json-tree-model.js.map +1 -0
- package/dist/components/json-tree-nodes.d.ts +35 -0
- package/dist/components/json-tree-nodes.d.ts.map +1 -0
- package/dist/components/json-tree-nodes.js +113 -0
- package/dist/components/json-tree-nodes.js.map +1 -0
- package/dist/components/json-tree.d.ts +20 -0
- package/dist/components/json-tree.d.ts.map +1 -1
- package/dist/components/json-tree.js +7 -315
- package/dist/components/json-tree.js.map +1 -1
- package/dist/components/json-value-format.d.ts +20 -0
- package/dist/components/json-value-format.d.ts.map +1 -0
- package/dist/components/json-value-format.js +63 -0
- package/dist/components/json-value-format.js.map +1 -0
- package/dist/components/markdown-blocks.d.ts +38 -0
- package/dist/components/markdown-blocks.d.ts.map +1 -0
- package/dist/components/markdown-blocks.js +168 -0
- package/dist/components/markdown-blocks.js.map +1 -0
- package/dist/components/markdown-inline.d.ts +24 -0
- package/dist/components/markdown-inline.d.ts.map +1 -0
- package/dist/components/markdown-inline.js +257 -0
- package/dist/components/markdown-inline.js.map +1 -0
- package/dist/components/markdown.d.ts +3 -52
- package/dist/components/markdown.d.ts.map +1 -1
- package/dist/components/markdown.js +4 -376
- package/dist/components/markdown.js.map +1 -1
- package/dist/components/observer-registry.d.ts +38 -0
- package/dist/components/observer-registry.d.ts.map +1 -0
- package/dist/components/observer-registry.js +131 -0
- package/dist/components/observer-registry.js.map +1 -0
- package/dist/components/overflow-measure.d.ts +38 -0
- package/dist/components/overflow-measure.d.ts.map +1 -0
- package/dist/components/overflow-measure.js +54 -0
- package/dist/components/overflow-measure.js.map +1 -0
- package/dist/components/page-fill.d.ts.map +1 -1
- package/dist/components/page-fill.js.map +1 -1
- package/dist/components/prose-regions.d.ts +81 -0
- package/dist/components/prose-regions.d.ts.map +1 -0
- package/dist/components/prose-regions.js +128 -0
- package/dist/components/prose-regions.js.map +1 -0
- package/dist/components/radio-group.d.ts.map +1 -1
- package/dist/components/radio-group.js.map +1 -1
- package/dist/components/scroll-region.d.ts +24 -0
- package/dist/components/scroll-region.d.ts.map +1 -1
- package/dist/components/scroll-region.js +3 -322
- package/dist/components/scroll-region.js.map +1 -1
- package/dist/components/tab-stop-parse.d.ts +53 -0
- package/dist/components/tab-stop-parse.d.ts.map +1 -0
- package/dist/components/tab-stop-parse.js +202 -0
- package/dist/components/tab-stop-parse.js.map +1 -0
- package/dist/components/table.d.ts +1 -1
- package/dist/components/table.d.ts.map +1 -1
- package/dist/components/tags.d.ts.map +1 -1
- package/dist/components/tags.js +1 -1
- package/dist/components/tags.js.map +1 -1
- package/dist/components/templated-text-field.d.ts +1 -1
- package/dist/components/templated-text-field.d.ts.map +1 -1
- package/dist/components/templated-text-field.js +10 -174
- package/dist/components/templated-text-field.js.map +1 -1
- package/dist/components/templated-text-kwargs-editor.d.ts +24 -0
- package/dist/components/templated-text-kwargs-editor.d.ts.map +1 -0
- package/dist/components/templated-text-kwargs-editor.js +48 -0
- package/dist/components/templated-text-kwargs-editor.js.map +1 -0
- package/dist/components/templated-text-kwargs.d.ts +37 -0
- package/dist/components/templated-text-kwargs.d.ts.map +1 -0
- package/dist/components/templated-text-kwargs.js +66 -0
- package/dist/components/templated-text-kwargs.js.map +1 -0
- package/dist/components/templated-text-source.d.ts +33 -0
- package/dist/components/templated-text-source.d.ts.map +1 -0
- package/dist/components/templated-text-source.js +53 -0
- package/dist/components/templated-text-source.js.map +1 -0
- package/dist/components/tool-picker-parts.d.ts +39 -0
- package/dist/components/tool-picker-parts.d.ts.map +1 -0
- package/dist/components/tool-picker-parts.js +87 -0
- package/dist/components/tool-picker-parts.js.map +1 -0
- package/dist/components/tool-picker.d.ts +1 -2
- package/dist/components/tool-picker.d.ts.map +1 -1
- package/dist/components/tool-picker.js +4 -66
- package/dist/components/tool-picker.js.map +1 -1
- package/dist/components/version-history-panel.d.ts.map +1 -1
- package/dist/components/version-history-panel.js +7 -34
- package/dist/components/version-history-panel.js.map +1 -1
- package/dist/components/version-history-rows.d.ts +48 -0
- package/dist/components/version-history-rows.d.ts.map +1 -0
- package/dist/components/version-history-rows.js +51 -0
- package/dist/components/version-history-rows.js.map +1 -0
- package/dist/components/view-toggle.d.ts.map +1 -1
- package/dist/components/view-toggle.js.map +1 -1
- package/dist/element-slot.d.ts +11 -0
- package/dist/element-slot.d.ts.map +1 -1
- package/dist/element-slot.js +0 -11
- package/dist/element-slot.js.map +1 -1
- package/dist/guards.d.ts +6 -0
- package/dist/guards.d.ts.map +1 -0
- package/dist/guards.js +8 -0
- package/dist/guards.js.map +1 -0
- package/dist/hooks/interactions-connection.d.ts +43 -0
- package/dist/hooks/interactions-connection.d.ts.map +1 -0
- package/dist/hooks/interactions-connection.js +171 -0
- package/dist/hooks/interactions-connection.js.map +1 -0
- package/dist/hooks/interactions-stream.d.ts +80 -0
- package/dist/hooks/interactions-stream.d.ts.map +1 -0
- package/dist/hooks/interactions-stream.js +233 -0
- package/dist/hooks/interactions-stream.js.map +1 -0
- package/dist/hooks/useApi.d.ts +2259 -2189
- package/dist/hooks/useApi.d.ts.map +1 -1
- package/dist/hooks/useApi.js +0 -11
- package/dist/hooks/useApi.js.map +1 -1
- package/dist/hooks/useAuth.d.ts +6 -0
- package/dist/hooks/useAuth.d.ts.map +1 -1
- package/dist/hooks/useAuth.js +0 -6
- package/dist/hooks/useAuth.js.map +1 -1
- package/dist/hooks/useCapabilities.d.ts +18 -2
- package/dist/hooks/useCapabilities.d.ts.map +1 -1
- package/dist/hooks/useCapabilities.js +1 -17
- package/dist/hooks/useCapabilities.js.map +1 -1
- package/dist/hooks/useSse.d.ts +34 -6
- package/dist/hooks/useSse.d.ts.map +1 -1
- package/dist/hooks/useSse.js +27 -471
- package/dist/hooks/useSse.js.map +1 -1
- package/dist/hooks/useSystemKinds.d.ts +1 -1
- package/dist/hooks/useSystemKinds.d.ts.map +1 -1
- package/dist/hooks/useSystemKinds.js +0 -18
- package/dist/hooks/useSystemKinds.js.map +1 -1
- package/dist/hooks/useTheme.d.ts +15 -0
- package/dist/hooks/useTheme.d.ts.map +1 -1
- package/dist/hooks/useTheme.js +0 -15
- package/dist/hooks/useTheme.js.map +1 -1
- package/dist/hooks/useToolDisplayNames.d.ts +0 -14
- package/dist/hooks/useToolDisplayNames.d.ts.map +1 -1
- package/dist/hooks/useToolDisplayNames.js +0 -14
- package/dist/hooks/useToolDisplayNames.js.map +1 -1
- package/dist/host.d.ts +3 -3
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js +2 -9
- package/dist/host.js.map +1 -1
- package/dist/index.d.ts +103 -103
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +49 -62
- package/dist/index.js.map +1 -1
- package/dist/navigation/app-link.d.ts +25 -0
- package/dist/navigation/app-link.d.ts.map +1 -0
- package/dist/navigation/app-link.js +33 -0
- package/dist/navigation/app-link.js.map +1 -0
- package/dist/navigation/context.d.ts +3 -20
- package/dist/navigation/context.d.ts.map +1 -1
- package/dist/navigation/context.js +7 -267
- package/dist/navigation/context.js.map +1 -1
- package/dist/navigation/entry-state.d.ts +23 -0
- package/dist/navigation/entry-state.d.ts.map +1 -0
- package/dist/navigation/entry-state.js +39 -0
- package/dist/navigation/entry-state.js.map +1 -0
- package/dist/navigation/guard-registry.d.ts +30 -0
- package/dist/navigation/guard-registry.d.ts.map +1 -0
- package/dist/navigation/guard-registry.js +46 -0
- package/dist/navigation/guard-registry.js.map +1 -0
- package/dist/navigation/guarded-navigation.d.ts +24 -0
- package/dist/navigation/guarded-navigation.d.ts.map +1 -0
- package/dist/navigation/guarded-navigation.js +102 -0
- package/dist/navigation/guarded-navigation.js.map +1 -0
- package/dist/navigation/index.d.ts +5 -4
- package/dist/navigation/index.d.ts.map +1 -1
- package/dist/navigation/index.js +2 -1
- package/dist/navigation/index.js.map +1 -1
- package/dist/navigation/types.d.ts +8 -11
- package/dist/navigation/types.d.ts.map +1 -1
- package/dist/navigation/use-back-forward-guard.d.ts +12 -0
- package/dist/navigation/use-back-forward-guard.d.ts.map +1 -0
- package/dist/navigation/use-back-forward-guard.js +75 -0
- package/dist/navigation/use-back-forward-guard.js.map +1 -0
- package/dist/navigation/use-search-commit.d.ts.map +1 -1
- package/dist/navigation/use-search-commit.js.map +1 -1
- package/dist/plugin/host-state.d.ts.map +1 -1
- package/dist/plugin/host-state.js.map +1 -1
- package/dist/plugin/registry.d.ts +6 -15
- package/dist/plugin/registry.d.ts.map +1 -1
- package/dist/plugin/registry.js +83 -75
- package/dist/plugin/registry.js.map +1 -1
- package/dist/schema-editor/SchemaEditor.d.ts.map +1 -1
- package/dist/schema-editor/SchemaEditor.js.map +1 -1
- package/dist/schema-editor/index.d.ts +3 -3
- package/dist/schema-editor/index.d.ts.map +1 -1
- package/dist/schema-editor/index.js +1 -6
- package/dist/schema-editor/index.js.map +1 -1
- package/dist/schema-form/SecretRefField.d.ts +18 -3
- package/dist/schema-form/SecretRefField.d.ts.map +1 -1
- package/dist/schema-form/SecretRefField.js +21 -26
- package/dist/schema-form/SecretRefField.js.map +1 -1
- package/dist/schema-form/classify.d.ts +1 -113
- package/dist/schema-form/classify.d.ts.map +1 -1
- package/dist/schema-form/classify.js +174 -246
- package/dist/schema-form/classify.js.map +1 -1
- package/dist/schema-form/context.d.ts +6 -0
- package/dist/schema-form/context.d.ts.map +1 -1
- package/dist/schema-form/context.js +0 -6
- package/dist/schema-form/context.js.map +1 -1
- package/dist/schema-form/default-value.d.ts.map +1 -1
- package/dist/schema-form/default-value.js +42 -19
- package/dist/schema-form/default-value.js.map +1 -1
- package/dist/schema-form/enum-field.d.ts +1 -1
- package/dist/schema-form/enum-field.d.ts.map +1 -1
- package/dist/schema-form/field-group.d.ts +6 -0
- package/dist/schema-form/field-group.d.ts.map +1 -1
- package/dist/schema-form/field-group.js +0 -6
- package/dist/schema-form/field-group.js.map +1 -1
- package/dist/schema-form/field-model.d.ts +121 -0
- package/dist/schema-form/field-model.d.ts.map +1 -0
- package/dist/schema-form/field-model.js +2 -0
- package/dist/schema-form/field-model.js.map +1 -0
- package/dist/schema-form/field-node.d.ts.map +1 -1
- package/dist/schema-form/field-node.js +25 -14
- package/dist/schema-form/field-node.js.map +1 -1
- package/dist/schema-form/index.d.ts +8 -8
- package/dist/schema-form/index.d.ts.map +1 -1
- package/dist/schema-form/index.js +3 -34
- package/dist/schema-form/index.js.map +1 -1
- package/dist/schema-form/json-field.d.ts +19 -0
- package/dist/schema-form/json-field.d.ts.map +1 -1
- package/dist/schema-form/json-field.js +0 -19
- package/dist/schema-form/json-field.js.map +1 -1
- package/dist/schema-form/media-field.d.ts +1 -1
- package/dist/schema-form/media-field.d.ts.map +1 -1
- package/dist/schema-form/media-field.js +49 -30
- package/dist/schema-form/media-field.js.map +1 -1
- package/dist/schema-form/record-field.d.ts +12 -0
- package/dist/schema-form/record-field.d.ts.map +1 -1
- package/dist/schema-form/record-field.js +1 -13
- package/dist/schema-form/record-field.js.map +1 -1
- package/dist/schema-form/string-annotations.d.ts +20 -0
- package/dist/schema-form/string-annotations.d.ts.map +1 -0
- package/dist/schema-form/string-annotations.js +105 -0
- package/dist/schema-form/string-annotations.js.map +1 -0
- package/dist/schema-form/string-field.d.ts +1 -1
- package/dist/schema-form/string-field.d.ts.map +1 -1
- package/dist/schema-form/string-field.js +1 -1
- package/dist/schema-form/string-field.js.map +1 -1
- package/dist/schema-form/union-field.d.ts +1 -1
- package/dist/schema-form/union-field.d.ts.map +1 -1
- package/dist/schema-form/union-field.js.map +1 -1
- package/dist/schema-form/union.d.ts +8 -1
- package/dist/schema-form/union.d.ts.map +1 -1
- package/dist/schema-form/union.js +0 -7
- package/dist/schema-form/union.js.map +1 -1
- package/dist/schema-form/validate.d.ts.map +1 -1
- package/dist/schema-form/validate.js +126 -105
- package/dist/schema-form/validate.js.map +1 -1
- package/dist/state-binding/AdapterMapping.d.ts.map +1 -1
- package/dist/state-binding/AdapterMapping.js +0 -0
- package/dist/state-binding/AdapterMapping.js.map +1 -1
- package/dist/state-binding/BindingJqField.d.ts.map +1 -1
- package/dist/state-binding/BindingJqField.js +2 -2
- package/dist/state-binding/BindingJqField.js.map +1 -1
- package/dist/state-binding/InputInjectionRow.d.ts.map +1 -1
- package/dist/state-binding/InputInjectionRow.js +3 -3
- package/dist/state-binding/InputInjectionRow.js.map +1 -1
- package/dist/state-binding/StateAttachRow.d.ts.map +1 -1
- package/dist/state-binding/StateAttachRow.js +57 -41
- package/dist/state-binding/StateAttachRow.js.map +1 -1
- package/dist/state-binding/StateBindingSection.d.ts.map +1 -1
- package/dist/state-binding/StateBindingSection.js.map +1 -1
- package/dist/state-binding/SubjectScopeFields.d.ts.map +1 -1
- package/dist/state-binding/SubjectScopeFields.js.map +1 -1
- package/dist/state-binding/UpdateRow.d.ts.map +1 -1
- package/dist/state-binding/UpdateRow.js +2 -2
- package/dist/state-binding/UpdateRow.js.map +1 -1
- package/dist/state-binding/adapter-mapping-row.d.ts +17 -0
- package/dist/state-binding/adapter-mapping-row.d.ts.map +1 -0
- package/dist/state-binding/adapter-mapping-row.js +87 -0
- package/dist/state-binding/adapter-mapping-row.js.map +1 -0
- package/dist/state-binding/index.d.ts +21 -21
- package/dist/state-binding/index.d.ts.map +1 -1
- package/dist/state-binding/index.js +9 -15
- package/dist/state-binding/index.js.map +1 -1
- package/dist/state-binding/templated-text-catalog.d.ts.map +1 -1
- package/dist/state-binding/templated-text-catalog.js.map +1 -1
- package/dist/state-binding/types.d.ts +2 -2
- package/dist/state-binding/types.d.ts.map +1 -1
- package/dist/structured-output/StructuredOutput.d.ts.map +1 -1
- package/dist/structured-output/StructuredOutput.js +1 -3
- package/dist/structured-output/StructuredOutput.js.map +1 -1
- package/package.json +2 -2
- package/src/components/code-block.tsx +1 -1
- package/src/components/confirm-dialog.tsx +1 -1
- package/src/components/copy-field.tsx +1 -1
- package/src/components/date-range-picker.tsx +1 -1
- package/src/components/dialog.tsx +1 -1
- package/src/components/dirty-guard.tsx +3 -3
- package/src/components/explorer-body.tsx +239 -0
- package/src/components/explorer-page-size.ts +39 -0
- package/src/components/explorer-tag-filter.tsx +80 -0
- package/src/components/explorer-tags.ts +64 -0
- package/src/components/explorer-view.tsx +115 -367
- package/src/components/extension-combo-builder.tsx +35 -153
- package/src/components/extension-combo-parts.tsx +236 -0
- package/src/components/field.tsx +1 -1
- package/src/components/fleet-report.tsx +98 -55
- package/src/components/folder-nav.tsx +2 -2
- package/src/components/form-dialog.tsx +2 -2
- package/src/components/icons/chrome-marks.tsx +195 -0
- package/src/components/icons/icon-frame.tsx +50 -0
- package/src/components/icons/index.ts +84 -0
- package/src/components/icons/nav-map.ts +55 -0
- package/src/components/icons/nav-marks.tsx +205 -0
- package/src/components/icons/status-marks.tsx +46 -0
- package/src/components/icons/theme-marks.tsx +33 -0
- package/src/components/inputs.tsx +1 -1
- package/src/components/json-diff.tsx +1 -4
- package/src/components/json-tree-context.ts +26 -0
- package/src/components/json-tree-model.ts +139 -0
- package/src/components/json-tree-nodes.tsx +224 -0
- package/src/components/json-tree.tsx +15 -434
- package/src/components/json-value-format.ts +64 -0
- package/src/components/markdown-blocks.ts +198 -0
- package/src/components/markdown-inline.tsx +365 -0
- package/src/components/markdown.tsx +6 -472
- package/src/components/observer-registry.ts +139 -0
- package/src/components/overflow-measure.ts +69 -0
- package/src/components/page-fill.tsx +1 -1
- package/src/components/prose-regions.ts +153 -0
- package/src/components/radio-group.tsx +1 -1
- package/src/components/scroll-region.tsx +22 -361
- package/src/components/tab-stop-parse.ts +217 -0
- package/src/components/table.tsx +1 -1
- package/src/components/tags.tsx +2 -2
- package/src/components/templated-text-field.tsx +39 -332
- package/src/components/templated-text-kwargs-editor.tsx +147 -0
- package/src/components/templated-text-kwargs.ts +92 -0
- package/src/components/templated-text-source.tsx +226 -0
- package/src/components/tool-picker-parts.tsx +184 -0
- package/src/components/tool-picker.tsx +22 -114
- package/src/components/version-history-panel.tsx +39 -143
- package/src/components/version-history-rows.tsx +220 -0
- package/src/components/view-toggle.tsx +1 -1
- package/src/element-slot.ts +1 -1
- package/src/guards.ts +7 -0
- package/src/hooks/interactions-connection.ts +227 -0
- package/src/hooks/interactions-stream.ts +274 -0
- package/src/hooks/useApi.ts +1 -1
- package/src/hooks/useAuth.ts +1 -1
- package/src/hooks/useCapabilities.ts +3 -3
- package/src/hooks/useSse.ts +51 -478
- package/src/hooks/useSystemKinds.tsx +2 -2
- package/src/hooks/useTheme.ts +1 -1
- package/src/hooks/useToolDisplayNames.tsx +2 -2
- package/src/host.ts +7 -7
- package/src/index.ts +292 -292
- package/src/navigation/app-link.tsx +70 -0
- package/src/navigation/context.tsx +12 -331
- package/src/navigation/entry-state.ts +42 -0
- package/src/navigation/guard-registry.ts +65 -0
- package/src/navigation/guarded-navigation.ts +147 -0
- package/src/navigation/index.ts +14 -14
- package/src/navigation/types.ts +8 -11
- package/src/navigation/use-back-forward-guard.ts +90 -0
- package/src/navigation/use-search-commit.ts +1 -1
- package/src/plugin/host-state.ts +1 -1
- package/src/plugin/registry.ts +111 -90
- package/src/schema-editor/SchemaEditor.tsx +1 -1
- package/src/schema-editor/index.ts +3 -3
- package/src/schema-form/SecretRefField.tsx +122 -72
- package/src/schema-form/classify.ts +245 -396
- package/src/schema-form/context.ts +1 -1
- package/src/schema-form/default-value.ts +48 -17
- package/src/schema-form/enum-field.tsx +1 -1
- package/src/schema-form/field-group.tsx +1 -1
- package/src/schema-form/field-model.ts +133 -0
- package/src/schema-form/field-node.tsx +95 -39
- package/src/schema-form/index.ts +10 -10
- package/src/schema-form/json-field.tsx +1 -1
- package/src/schema-form/media-field.tsx +136 -67
- package/src/schema-form/record-field.tsx +2 -2
- package/src/schema-form/string-annotations.ts +111 -0
- package/src/schema-form/string-field.tsx +2 -2
- package/src/schema-form/union-field.tsx +3 -2
- package/src/schema-form/union.ts +1 -1
- package/src/schema-form/validate.ts +185 -104
- package/src/state-binding/AdapterMapping.tsx +0 -0
- package/src/state-binding/BindingJqField.tsx +3 -3
- package/src/state-binding/InputInjectionRow.tsx +4 -4
- package/src/state-binding/StateAttachRow.tsx +229 -154
- package/src/state-binding/StateBindingSection.tsx +1 -1
- package/src/state-binding/SubjectScopeFields.tsx +1 -1
- package/src/state-binding/UpdateRow.tsx +3 -3
- package/src/state-binding/adapter-mapping-row.tsx +232 -0
- package/src/state-binding/index.ts +43 -43
- package/src/state-binding/templated-text-catalog.ts +0 -1
- package/src/state-binding/types.ts +2 -2
- package/src/structured-output/StructuredOutput.tsx +1 -4
- package/dist/components/icons.d.ts +0 -160
- package/dist/components/icons.d.ts.map +0 -1
- package/dist/components/icons.js +0 -160
- package/dist/components/icons.js.map +0 -1
- package/src/components/icons.tsx +0 -586
|
@@ -5,11 +5,13 @@
|
|
|
5
5
|
* container constraint on a free-form `json` field. It never throws on a
|
|
6
6
|
* malformed value — a malformed value IS the error it reports.
|
|
7
7
|
*/
|
|
8
|
+
import { isRecord } from '../guards';
|
|
8
9
|
import { classifySchema } from './classify';
|
|
10
|
+
import type { FieldModel } from './field-model';
|
|
9
11
|
import { decodedByteSize, effectiveMaxBytes, overCapMessage } from './media';
|
|
10
12
|
import { scalarLabel } from './resolve';
|
|
11
|
-
import { activeVariantIndex } from './union';
|
|
12
13
|
import type { JsonSchema, SchemaFormErrors } from './types';
|
|
14
|
+
import { activeVariantIndex } from './union';
|
|
13
15
|
|
|
14
16
|
/** Options for {@link validateAgainstSchema}. */
|
|
15
17
|
export interface ValidateOptions {
|
|
@@ -21,14 +23,20 @@ export interface ValidateOptions {
|
|
|
21
23
|
readonly maxUploadBytes?: number;
|
|
22
24
|
}
|
|
23
25
|
|
|
26
|
+
/** The invariants every per-node validator shares while walking one value tree. */
|
|
27
|
+
interface ValidateCtx {
|
|
28
|
+
/** The document root, for `$ref` resolution during re-classification. */
|
|
29
|
+
readonly root: JsonSchema;
|
|
30
|
+
/** The path-keyed error bag every validator writes into. */
|
|
31
|
+
readonly errors: Record<string, string>;
|
|
32
|
+
/** The host's default media byte cap (a field's own cap still overrides it). */
|
|
33
|
+
readonly maxUploadBytes: number | undefined;
|
|
34
|
+
}
|
|
35
|
+
|
|
24
36
|
const EMAIL_RE = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
25
37
|
const DATE_RE = /^\d{4}-\d{2}-\d{2}$/;
|
|
26
38
|
const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
27
39
|
|
|
28
|
-
function isPlainObject(value: unknown): value is Record<string, unknown> {
|
|
29
|
-
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
40
|
function joinPath(path: string, key: string): string {
|
|
33
41
|
return path === '' ? key : `${path}.${key}`;
|
|
34
42
|
}
|
|
@@ -58,127 +66,200 @@ function formatError(format: string, value: string): string | undefined {
|
|
|
58
66
|
}
|
|
59
67
|
}
|
|
60
68
|
|
|
61
|
-
|
|
62
|
-
|
|
69
|
+
type ModelOf<K extends FieldModel['kind']> = Extract<FieldModel, { kind: K }>;
|
|
70
|
+
|
|
71
|
+
// A free-form JSON field: any JSON is accepted, subject only to the container the
|
|
72
|
+
// schema commits to (mirrors the renderer's inline check).
|
|
73
|
+
function validateJson(
|
|
74
|
+
model: ModelOf<'json'>,
|
|
75
|
+
value: unknown,
|
|
76
|
+
path: string,
|
|
77
|
+
ctx: ValidateCtx,
|
|
78
|
+
): void {
|
|
79
|
+
if (model.jsonType === 'object' && !isRecord(value)) {
|
|
80
|
+
ctx.errors[path] = 'must be a JSON object';
|
|
81
|
+
} else if (model.jsonType === 'array' && !Array.isArray(value)) {
|
|
82
|
+
ctx.errors[path] = 'must be a JSON array';
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
function validateConst(
|
|
87
|
+
model: ModelOf<'const'>,
|
|
88
|
+
value: unknown,
|
|
89
|
+
path: string,
|
|
90
|
+
ctx: ValidateCtx,
|
|
91
|
+
): void {
|
|
92
|
+
if (value !== model.value) ctx.errors[path] = `must equal ${scalarLabel(model.value)}`;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
function validateEnum(
|
|
96
|
+
model: ModelOf<'enum'>,
|
|
97
|
+
value: unknown,
|
|
98
|
+
path: string,
|
|
99
|
+
ctx: ValidateCtx,
|
|
100
|
+
): void {
|
|
101
|
+
const allowed = model.options.some((option) => option.value === value);
|
|
102
|
+
if (!allowed) ctx.errors[path] = 'must be one of the allowed values';
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
function validateString(
|
|
106
|
+
model: ModelOf<'string'>,
|
|
63
107
|
value: unknown,
|
|
64
108
|
path: string,
|
|
65
|
-
|
|
66
|
-
errors: Record<string, string>,
|
|
67
|
-
maxUploadBytes: number | undefined,
|
|
109
|
+
ctx: ValidateCtx,
|
|
68
110
|
): void {
|
|
69
|
-
|
|
111
|
+
if (typeof value !== 'string') {
|
|
112
|
+
ctx.errors[path] = 'must be a string';
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
// A media-annotated string carries a byte cap; enforce it on the value's
|
|
116
|
+
// DECODED size so a value that arrived by any route is caught here too. The
|
|
117
|
+
// precedence matches the renderer: field `contentMaxBytes` → host cap →
|
|
118
|
+
// shared default.
|
|
119
|
+
if (model.media !== undefined) {
|
|
120
|
+
const cap = effectiveMaxBytes(model.media.maxBytes, ctx.maxUploadBytes);
|
|
121
|
+
const size = decodedByteSize(value);
|
|
122
|
+
if (size > cap) {
|
|
123
|
+
ctx.errors[path] = overCapMessage('The value', size, cap);
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
if (value.length > 0 && model.format !== undefined) {
|
|
128
|
+
const message = formatError(model.format, value);
|
|
129
|
+
if (message !== undefined) ctx.errors[path] = message;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
function validateNumber(
|
|
134
|
+
model: ModelOf<'number'>,
|
|
135
|
+
value: unknown,
|
|
136
|
+
path: string,
|
|
137
|
+
ctx: ValidateCtx,
|
|
138
|
+
): void {
|
|
139
|
+
if (typeof value !== 'number' || Number.isNaN(value)) {
|
|
140
|
+
ctx.errors[path] = model.integer ? 'must be an integer' : 'must be a number';
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
if (model.integer && !Number.isInteger(value)) ctx.errors[path] = 'must be an integer';
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
function validateBoolean(value: unknown, path: string, ctx: ValidateCtx): void {
|
|
147
|
+
if (typeof value !== 'boolean') ctx.errors[path] = 'must be true or false';
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
function validateArray(
|
|
151
|
+
model: ModelOf<'array'>,
|
|
152
|
+
value: unknown,
|
|
153
|
+
path: string,
|
|
154
|
+
ctx: ValidateCtx,
|
|
155
|
+
): void {
|
|
156
|
+
if (!Array.isArray(value)) {
|
|
157
|
+
ctx.errors[path] = 'must be an array';
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
value.forEach((item, index) => {
|
|
161
|
+
walk(model.items, item, `${path}[${String(index)}]`, ctx);
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
function validateObject(
|
|
166
|
+
model: ModelOf<'object'>,
|
|
167
|
+
value: unknown,
|
|
168
|
+
path: string,
|
|
169
|
+
ctx: ValidateCtx,
|
|
170
|
+
): void {
|
|
171
|
+
if (!isRecord(value)) {
|
|
172
|
+
ctx.errors[path] = 'must be an object';
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
const propMap = new Map(model.properties);
|
|
176
|
+
for (const [name, propSchema] of model.properties) {
|
|
177
|
+
const childPath = joinPath(path, name);
|
|
178
|
+
const childValue = value[name];
|
|
179
|
+
if (childValue === undefined) {
|
|
180
|
+
if (model.required.has(name)) ctx.errors[childPath] = `"${name}" is required`;
|
|
181
|
+
continue;
|
|
182
|
+
}
|
|
183
|
+
walk(propSchema, childValue, childPath, ctx);
|
|
184
|
+
}
|
|
185
|
+
// Required keys naming a property that somehow isn't declared still count.
|
|
186
|
+
for (const name of model.required) {
|
|
187
|
+
if (!propMap.has(name) && value[name] === undefined) {
|
|
188
|
+
ctx.errors[joinPath(path, name)] = `"${name}" is required`;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
function validateRecord(
|
|
194
|
+
model: ModelOf<'record'>,
|
|
195
|
+
value: unknown,
|
|
196
|
+
path: string,
|
|
197
|
+
ctx: ValidateCtx,
|
|
198
|
+
): void {
|
|
199
|
+
if (!isRecord(value)) {
|
|
200
|
+
ctx.errors[path] = 'must be an object';
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
for (const [key, entryValue] of Object.entries(value)) {
|
|
204
|
+
walk(model.values, entryValue, joinPath(path, key), ctx);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
function validateUnion(
|
|
209
|
+
model: ModelOf<'union'>,
|
|
210
|
+
value: unknown,
|
|
211
|
+
path: string,
|
|
212
|
+
ctx: ValidateCtx,
|
|
213
|
+
): void {
|
|
214
|
+
const index = activeVariantIndex(value, model.variants, model.discriminator, ctx.root);
|
|
215
|
+
const variant = index === -1 ? undefined : model.variants[index];
|
|
216
|
+
if (variant === undefined) {
|
|
217
|
+
ctx.errors[path] = 'does not match any allowed variant';
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
walk(variant.schema, value, path, ctx);
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
function walk(schema: JsonSchema, value: unknown, path: string, ctx: ValidateCtx): void {
|
|
224
|
+
const classified = classifySchema(schema, ctx.root);
|
|
70
225
|
|
|
71
226
|
if (value === null) {
|
|
72
|
-
if (!classified.nullable) errors[path] = 'must not be null';
|
|
227
|
+
if (!classified.nullable) ctx.errors[path] = 'must not be null';
|
|
73
228
|
return;
|
|
74
229
|
}
|
|
75
230
|
|
|
76
231
|
const { model } = classified;
|
|
77
232
|
switch (model.kind) {
|
|
78
233
|
case 'json':
|
|
79
|
-
|
|
80
|
-
// container the schema commits to (mirrors the renderer's inline check).
|
|
81
|
-
if (model.jsonType === 'object' && !isPlainObject(value)) {
|
|
82
|
-
errors[path] = 'must be a JSON object';
|
|
83
|
-
} else if (model.jsonType === 'array' && !Array.isArray(value)) {
|
|
84
|
-
errors[path] = 'must be a JSON array';
|
|
85
|
-
}
|
|
234
|
+
validateJson(model, value, path, ctx);
|
|
86
235
|
return;
|
|
87
236
|
case 'const':
|
|
88
|
-
|
|
237
|
+
validateConst(model, value, path, ctx);
|
|
89
238
|
return;
|
|
90
|
-
case 'enum':
|
|
91
|
-
|
|
92
|
-
if (!allowed) errors[path] = 'must be one of the allowed values';
|
|
239
|
+
case 'enum':
|
|
240
|
+
validateEnum(model, value, path, ctx);
|
|
93
241
|
return;
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
if (typeof value !== 'string') {
|
|
97
|
-
errors[path] = 'must be a string';
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
// A media-annotated string carries a byte cap; enforce it on the value's
|
|
101
|
-
// DECODED size so a value that arrived by any route is caught here too. The
|
|
102
|
-
// precedence matches the renderer: field `contentMaxBytes` → host cap →
|
|
103
|
-
// shared default.
|
|
104
|
-
if (model.media !== undefined) {
|
|
105
|
-
const cap = effectiveMaxBytes(model.media.maxBytes, maxUploadBytes);
|
|
106
|
-
const size = decodedByteSize(value);
|
|
107
|
-
if (size > cap) {
|
|
108
|
-
errors[path] = overCapMessage('The value', size, cap);
|
|
109
|
-
return;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
if (value.length > 0 && model.format !== undefined) {
|
|
113
|
-
const message = formatError(model.format, value);
|
|
114
|
-
if (message !== undefined) errors[path] = message;
|
|
115
|
-
}
|
|
242
|
+
case 'string':
|
|
243
|
+
validateString(model, value, path, ctx);
|
|
116
244
|
return;
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
if (typeof value !== 'number' || Number.isNaN(value)) {
|
|
120
|
-
errors[path] = model.integer ? 'must be an integer' : 'must be a number';
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
|
-
if (model.integer && !Number.isInteger(value)) errors[path] = 'must be an integer';
|
|
245
|
+
case 'number':
|
|
246
|
+
validateNumber(model, value, path, ctx);
|
|
124
247
|
return;
|
|
125
|
-
}
|
|
126
248
|
case 'boolean':
|
|
127
|
-
|
|
249
|
+
validateBoolean(value, path, ctx);
|
|
128
250
|
return;
|
|
129
|
-
case 'array':
|
|
130
|
-
|
|
131
|
-
errors[path] = 'must be an array';
|
|
132
|
-
return;
|
|
133
|
-
}
|
|
134
|
-
value.forEach((item, index) => {
|
|
135
|
-
walk(model.items, item, `${path}[${String(index)}]`, root, errors, maxUploadBytes);
|
|
136
|
-
});
|
|
251
|
+
case 'array':
|
|
252
|
+
validateArray(model, value, path, ctx);
|
|
137
253
|
return;
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
if (!isPlainObject(value)) {
|
|
141
|
-
errors[path] = 'must be an object';
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
const propMap = new Map(model.properties);
|
|
145
|
-
for (const [name, propSchema] of model.properties) {
|
|
146
|
-
const childPath = joinPath(path, name);
|
|
147
|
-
const childValue = value[name];
|
|
148
|
-
if (childValue === undefined) {
|
|
149
|
-
if (model.required.has(name)) errors[childPath] = `"${name}" is required`;
|
|
150
|
-
continue;
|
|
151
|
-
}
|
|
152
|
-
walk(propSchema, childValue, childPath, root, errors, maxUploadBytes);
|
|
153
|
-
}
|
|
154
|
-
// Required keys naming a property that somehow isn't declared still count.
|
|
155
|
-
for (const name of model.required) {
|
|
156
|
-
if (!propMap.has(name) && value[name] === undefined) {
|
|
157
|
-
errors[joinPath(path, name)] = `"${name}" is required`;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
254
|
+
case 'object':
|
|
255
|
+
validateObject(model, value, path, ctx);
|
|
160
256
|
return;
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
if (!isPlainObject(value)) {
|
|
164
|
-
errors[path] = 'must be an object';
|
|
165
|
-
return;
|
|
166
|
-
}
|
|
167
|
-
for (const [key, entryValue] of Object.entries(value)) {
|
|
168
|
-
walk(model.values, entryValue, joinPath(path, key), root, errors, maxUploadBytes);
|
|
169
|
-
}
|
|
257
|
+
case 'record':
|
|
258
|
+
validateRecord(model, value, path, ctx);
|
|
170
259
|
return;
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
const index = activeVariantIndex(value, model.variants, model.discriminator, root);
|
|
174
|
-
const variant = index === -1 ? undefined : model.variants[index];
|
|
175
|
-
if (variant === undefined) {
|
|
176
|
-
errors[path] = 'does not match any allowed variant';
|
|
177
|
-
return;
|
|
178
|
-
}
|
|
179
|
-
walk(variant.schema, value, path, root, errors, maxUploadBytes);
|
|
260
|
+
case 'union':
|
|
261
|
+
validateUnion(model, value, path, ctx);
|
|
180
262
|
return;
|
|
181
|
-
}
|
|
182
263
|
}
|
|
183
264
|
}
|
|
184
265
|
|
|
@@ -194,6 +275,6 @@ export function validateAgainstSchema(
|
|
|
194
275
|
options?: ValidateOptions,
|
|
195
276
|
): SchemaFormErrors {
|
|
196
277
|
const errors: Record<string, string> = {};
|
|
197
|
-
walk(schema, value, '', schema, errors, options?.maxUploadBytes);
|
|
278
|
+
walk(schema, value, '', { root: schema, errors, maxUploadBytes: options?.maxUploadBytes });
|
|
198
279
|
return errors;
|
|
199
280
|
}
|
|
Binary file
|
|
@@ -12,12 +12,12 @@
|
|
|
12
12
|
* expression — the attachment-qualified `tjq_<attachment>__<name>` form when a name is
|
|
13
13
|
* ambiguous across attachments.
|
|
14
14
|
*/
|
|
15
|
-
import {
|
|
15
|
+
import { type ReactNode, useContext } from 'react';
|
|
16
16
|
|
|
17
|
-
import { Button } from '../components/primitives';
|
|
18
|
-
import { PlusIcon } from '../components/icons';
|
|
19
17
|
import { Field } from '../components/field';
|
|
18
|
+
import { PlusIcon } from '../components/icons';
|
|
20
19
|
import { Textarea } from '../components/inputs';
|
|
20
|
+
import { Button } from '../components/primitives';
|
|
21
21
|
import { ExpressionFieldContext } from '../schema-form/context';
|
|
22
22
|
import { generateTemplateCall } from './adapter';
|
|
23
23
|
|
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import type { ReactNode } from 'react';
|
|
7
7
|
|
|
8
|
-
import { Button } from '../components/primitives';
|
|
9
8
|
import { Field } from '../components/field';
|
|
10
|
-
import { Select } from '../components/select';
|
|
11
|
-
import { TextInput } from '../components/inputs';
|
|
12
9
|
import { CloseIcon } from '../components/icons';
|
|
13
|
-
import {
|
|
10
|
+
import { TextInput } from '../components/inputs';
|
|
11
|
+
import { Button } from '../components/primitives';
|
|
12
|
+
import { Select } from '../components/select';
|
|
14
13
|
import type { TemplateJqSuggestion } from './BindingJqField';
|
|
14
|
+
import { BindingTemplatedJqField } from './BindingTemplatedJqField';
|
|
15
15
|
import type { ResolvedTemplateJq } from './catalog';
|
|
16
16
|
import type { StateInjection, TemplatedTextCatalog } from './types';
|
|
17
17
|
|