@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
package/dist/plugin/registry.js
CHANGED
|
@@ -2,118 +2,126 @@ const toolPanels = new Map();
|
|
|
2
2
|
const pages = [];
|
|
3
3
|
const settingsTabs = [];
|
|
4
4
|
const navEntries = [];
|
|
5
|
+
function emptyStaged() {
|
|
6
|
+
return {
|
|
7
|
+
pages: [],
|
|
8
|
+
toolPanels: new Map(),
|
|
9
|
+
settingsTabs: [],
|
|
10
|
+
tabIds: new Set(),
|
|
11
|
+
navEntries: [],
|
|
12
|
+
};
|
|
13
|
+
}
|
|
5
14
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* successfully. `entry` is AWAITED before commit, so a synchronous or an `async`
|
|
12
|
-
* entry is fully done first: a post-`await` throw skips the commit (atomicity
|
|
13
|
-
* holds for async too) and a post-`await` registration cannot slip past the batch.
|
|
14
|
-
* The seal is set after `entry` has SETTLED — for a sync entry, after it returns
|
|
15
|
-
* and the `await` continuation runs; for an async entry, after its returned promise
|
|
16
|
-
* resolves. A registration attempted from that point on (a deferred timer, a
|
|
17
|
-
* callback scheduled after settle) throws loudly instead of pushing into an
|
|
18
|
-
* orphaned staged array that never commits. Registrations made during `entry`'s
|
|
19
|
-
* synchronous body — including a microtask it enqueues then, which runs before the
|
|
20
|
-
* `await` continuation — are still captured and committed with the batch. A
|
|
21
|
-
* `register` that throws commits nothing and leaves the registry untouched.
|
|
22
|
-
* Duplicate guards run against BOTH the staged contributions and what is already
|
|
15
|
+
* Build the {@link PluginContext} a plugin's `register` entry contributes through.
|
|
16
|
+
* Every method stages into `staged` (never ambient state) and refuses once `seal` is
|
|
17
|
+
* closed — a registration after `entry` settles (a deferred timer, a post-settle
|
|
18
|
+
* callback) throws loudly rather than pushing into an orphaned array that never
|
|
19
|
+
* commits. Duplicate guards run against BOTH the staged set and what is already
|
|
23
20
|
* committed, and fail loudly.
|
|
24
21
|
*/
|
|
25
|
-
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
const context = {
|
|
22
|
+
function makeStagingContext(pluginId, staged, seal) {
|
|
23
|
+
const assertOpen = () => {
|
|
24
|
+
if (seal.closed) {
|
|
25
|
+
throw new Error('registration is closed: a plugin must register during register(), not after it resolves');
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
return {
|
|
33
29
|
registerPage(contribution) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const committed = pages.some((p) => p.pluginId === pluginId && p.path === contribution.path);
|
|
39
|
-
if (staged || committed) {
|
|
30
|
+
assertOpen();
|
|
31
|
+
const duplicate = staged.pages.some((p) => p.path === contribution.path) ||
|
|
32
|
+
pages.some((p) => p.pluginId === pluginId && p.path === contribution.path);
|
|
33
|
+
if (duplicate) {
|
|
40
34
|
// A duplicate path within one plugin is an author mistake that would
|
|
41
35
|
// leave one page unreachable — fail loudly, as registerToolPanel does.
|
|
42
36
|
throw new Error(`plugin “${pluginId}” already registered a page at “${contribution.path}”`);
|
|
43
37
|
}
|
|
44
|
-
|
|
38
|
+
staged.pages.push({ ...contribution, pluginId });
|
|
45
39
|
},
|
|
46
40
|
registerToolPanel(contribution) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
50
|
-
if (stagedToolPanels.has(contribution.toolName) || toolPanels.has(contribution.toolName)) {
|
|
41
|
+
assertOpen();
|
|
42
|
+
if (staged.toolPanels.has(contribution.toolName) || toolPanels.has(contribution.toolName)) {
|
|
51
43
|
throw new Error(`a tool panel is already registered for ${contribution.toolName}`);
|
|
52
44
|
}
|
|
53
|
-
|
|
45
|
+
staged.toolPanels.set(contribution.toolName, contribution);
|
|
54
46
|
},
|
|
55
47
|
registerSettingsTab(contribution) {
|
|
56
|
-
|
|
57
|
-
throw new Error('registration is closed: a plugin must register during register(), not after it resolves');
|
|
58
|
-
}
|
|
48
|
+
assertOpen();
|
|
59
49
|
const committed = settingsTabs.some((t) => t.pluginId === pluginId && t.id === contribution.id);
|
|
60
|
-
if (
|
|
50
|
+
if (staged.tabIds.has(contribution.id) || committed) {
|
|
61
51
|
// A duplicate tab id within one plugin would leave one tab unreachable —
|
|
62
52
|
// fail loudly, mirroring the page-path guard.
|
|
63
53
|
throw new Error(`plugin “${pluginId}” already registered a settings tab “${contribution.id}”`);
|
|
64
54
|
}
|
|
65
|
-
|
|
66
|
-
|
|
55
|
+
staged.tabIds.add(contribution.id);
|
|
56
|
+
staged.settingsTabs.push({ ...contribution, pluginId });
|
|
67
57
|
},
|
|
68
58
|
registerNavEntry(contribution) {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
const committed = navEntries.some((e) => e.pluginId === pluginId && e.path === contribution.path);
|
|
74
|
-
if (staged || committed) {
|
|
59
|
+
assertOpen();
|
|
60
|
+
const duplicate = staged.navEntries.some((e) => e.path === contribution.path) ||
|
|
61
|
+
navEntries.some((e) => e.pluginId === pluginId && e.path === contribution.path);
|
|
62
|
+
if (duplicate) {
|
|
75
63
|
// A duplicate nav path within one plugin is an author mistake — two
|
|
76
64
|
// entries pointing at the same page — so fail loudly like the page guard.
|
|
77
65
|
throw new Error(`plugin “${pluginId}” already registered a nav entry at “${contribution.path}”`);
|
|
78
66
|
}
|
|
79
|
-
|
|
67
|
+
staged.navEntries.push({ ...contribution, pluginId });
|
|
80
68
|
},
|
|
81
69
|
};
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
// dead link (the plugin page surface renders "Page not found"), so reject it
|
|
93
|
-
// loudly. This throws BEFORE the commit loops, so it propagates out of
|
|
94
|
-
// `loadPlugin` and NOTHING (pages, panels, tabs, nav) commits — atomicity holds.
|
|
95
|
-
for (const navEntry of stagedNavEntries) {
|
|
96
|
-
const hasPage = stagedPages.some((p) => p.path === navEntry.path) ||
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Every nav entry must link to a page THIS plugin registers — staged in this call or
|
|
73
|
+
* already committed. A nav entry with no matching page is a guaranteed dead link (the
|
|
74
|
+
* plugin page surface renders "Page not found"), so reject it loudly. Throwing here —
|
|
75
|
+
* BEFORE any commit — keeps atomicity: nothing (pages, panels, tabs, nav) commits.
|
|
76
|
+
*/
|
|
77
|
+
function assertNavEntriesHavePages(pluginId, staged) {
|
|
78
|
+
for (const navEntry of staged.navEntries) {
|
|
79
|
+
const hasPage = staged.pages.some((p) => p.path === navEntry.path) ||
|
|
97
80
|
pages.some((p) => p.pluginId === pluginId && p.path === navEntry.path);
|
|
98
81
|
if (!hasPage) {
|
|
99
82
|
throw new Error(`plugin “${pluginId}” registered a nav entry at “${navEntry.path}” but no page at that path`);
|
|
100
83
|
}
|
|
101
84
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Commit the staged contributions as one batch, so the registry only ever holds a
|
|
88
|
+
* plugin's complete set — never a partial set left behind by a mid-registration failure.
|
|
89
|
+
*/
|
|
90
|
+
function commitStaged(staged) {
|
|
91
|
+
for (const page of staged.pages)
|
|
106
92
|
pages.push(page);
|
|
107
|
-
|
|
108
|
-
for (const [toolName, contribution] of stagedToolPanels) {
|
|
93
|
+
for (const [toolName, contribution] of staged.toolPanels)
|
|
109
94
|
toolPanels.set(toolName, contribution);
|
|
110
|
-
|
|
111
|
-
for (const tab of stagedSettingsTabs) {
|
|
95
|
+
for (const tab of staged.settingsTabs)
|
|
112
96
|
settingsTabs.push(tab);
|
|
113
|
-
|
|
114
|
-
for (const navEntry of stagedNavEntries) {
|
|
97
|
+
for (const navEntry of staged.navEntries)
|
|
115
98
|
navEntries.push(navEntry);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Load one plugin: call its `register` entry with a context bound to `pluginId`,
|
|
102
|
+
* then commit everything it staged into the global registry.
|
|
103
|
+
*
|
|
104
|
+
* `entry` is AWAITED before commit, so a synchronous or an `async` entry is fully
|
|
105
|
+
* done first: a post-`await` throw skips the commit (atomicity holds for async too)
|
|
106
|
+
* and a post-`await` registration cannot slip past the batch. The seal is set after
|
|
107
|
+
* `entry` has SETTLED, so a later registration throws loudly; registrations made
|
|
108
|
+
* during `entry`'s synchronous body — including a microtask it enqueues then — are
|
|
109
|
+
* still captured and committed. A `register` that throws commits nothing.
|
|
110
|
+
*/
|
|
111
|
+
export async function loadPlugin(pluginId, entry) {
|
|
112
|
+
const staged = emptyStaged();
|
|
113
|
+
const seal = { closed: false };
|
|
114
|
+
const context = makeStagingContext(pluginId, staged, seal);
|
|
115
|
+
try {
|
|
116
|
+
await entry(context);
|
|
117
|
+
}
|
|
118
|
+
finally {
|
|
119
|
+
// Whether `entry` resolved or threw, no further registration is valid — seal
|
|
120
|
+
// so a deferred call fails loudly rather than pushing into an orphaned array.
|
|
121
|
+
seal.closed = true;
|
|
116
122
|
}
|
|
123
|
+
assertNavEntriesHavePages(pluginId, staged);
|
|
124
|
+
commitStaged(staged);
|
|
117
125
|
}
|
|
118
126
|
/** The shell reads this after loading every installed plugin bundle. */
|
|
119
127
|
export function getContributions() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/plugin/registry.ts"],"names":[],"mappings":"AAqBA,MAAM,UAAU,GAAG,IAAI,GAAG,EAAiC,CAAC;AAC5D,MAAM,KAAK,GAAqB,EAAE,CAAC;AACnC,MAAM,YAAY,GAA4B,EAAE,CAAC;AACjD,MAAM,UAAU,GAAyB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/plugin/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaEditor.d.ts","sourceRoot":"","sources":["../../src/schema-editor/SchemaEditor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"SchemaEditor.d.ts","sourceRoot":"","sources":["../../src/schema-editor/SchemaEditor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAa,KAAK,SAAS,EAAqB,MAAM,OAAO,CAAC;AAYrE,0DAA0D;AAC1D,MAAM,WAAW,kBAAkB;IACjC,0FAA0F;IAC1F,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAChD,8FAA8F;IAC9F,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC/C,+EAA+E;IAC/E,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACxD,qFAAqF;IACrF,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAsFD,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,KAAgB,EAChB,WAAW,EACX,QAAQ,EACR,QAA0B,EAC1B,SAAiB,GAClB,EAAE,iBAAiB,GAAG,SAAS,CA2C/B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaEditor.js","sourceRoot":"","sources":["../../src/schema-editor/SchemaEditor.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"SchemaEditor.js","sourceRoot":"","sources":["../../src/schema-editor/SchemaEditor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* surface: the `SchemaEditor` component, its change type, and the pure lint helper
|
|
4
4
|
* consumers reuse to pre-check a stored schema.
|
|
5
5
|
*/
|
|
6
|
-
export { SchemaEditor } from './SchemaEditor';
|
|
7
|
-
export type { SchemaEditorProps, SchemaEditorChange } from './SchemaEditor';
|
|
8
|
-
export { lintSchemaText } from './lint';
|
|
9
6
|
export type { SchemaLintResult } from './lint';
|
|
7
|
+
export { lintSchemaText } from './lint';
|
|
8
|
+
export type { SchemaEditorChange, SchemaEditorProps } from './SchemaEditor';
|
|
9
|
+
export { SchemaEditor } from './SchemaEditor';
|
|
10
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema-editor/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema-editor/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,YAAY,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Schema-editor — the shared, validated JSON-Schema authoring control. Public
|
|
3
|
-
* surface: the `SchemaEditor` component, its change type, and the pure lint helper
|
|
4
|
-
* consumers reuse to pre-check a stored schema.
|
|
5
|
-
*/
|
|
6
|
-
export { SchemaEditor } from './SchemaEditor';
|
|
7
1
|
export { lintSchemaText } from './lint';
|
|
2
|
+
export { SchemaEditor } from './SchemaEditor';
|
|
8
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema-editor/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema-editor/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,11 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `SecretRefField` — a data-agnostic masked editor for ONE secret value that is
|
|
3
|
+
* EITHER a reference to an existing env key OR a freshly pasted secret. It knows
|
|
4
|
+
* nothing about any wire format: it emits a discriminated {@link SecretRef} and
|
|
5
|
+
* the host maps that to whatever it stores.
|
|
6
|
+
*
|
|
7
|
+
* WRITE-ONLY for a pasted secret: the plaintext lives only in local editor state
|
|
8
|
+
* until the user commits it, at which point it leaves the DOM entirely (held only
|
|
9
|
+
* in the emitted value the host holds) — the committed chip renders a fixed mask,
|
|
10
|
+
* never the secret, and offers NO reveal. A picked key's NAME is not itself the
|
|
11
|
+
* secret, so its chip is revealable on click.
|
|
12
|
+
*
|
|
13
|
+
* FAIL CLOSED: env-key picking is offered only when `keyPickingAvailable` is
|
|
14
|
+
* explicitly true (the host passes it from whether the projection carries the env
|
|
15
|
+
* route). Absent, the field is paste-only.
|
|
16
|
+
*/
|
|
1
17
|
import type { ReactNode } from 'react';
|
|
2
18
|
/**
|
|
3
19
|
* The value {@link SecretRefField} emits and reads back. The `source` discriminant
|
|
4
20
|
* is what the host branches on:
|
|
5
|
-
* - `key` — reference an existing env key; the host
|
|
21
|
+
* - `key` — reference an existing env key; the host resolves the reference.
|
|
6
22
|
* - `paste` — a new plaintext secret; the host stores it under a generated key
|
|
7
|
-
*
|
|
8
|
-
* write-only and is never rendered.
|
|
23
|
+
* and records the reference. `secret` is write-only and never rendered.
|
|
9
24
|
*/
|
|
10
25
|
export type SecretRef = {
|
|
11
26
|
readonly source: 'key';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SecretRefField.d.ts","sourceRoot":"","sources":["../../src/schema-form/SecretRefField.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SecretRefField.d.ts","sourceRoot":"","sources":["../../src/schema-form/SecretRefField.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AASvC;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,GACjB;IAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D,MAAM,WAAW,mBAAmB;IAClC,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IACtC,gFAAgF;IAChF,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC9C,wFAAwF;IACxF,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC;;;;;OAKG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,qEAAqE;IACrE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAKD,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,KAAgB,EAChB,QAAuB,GACxB,EAAE,mBAAmB,GAAG,SAAS,CAmFjC"}
|
|
@@ -1,23 +1,4 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* `SecretRefField` — a data-agnostic masked editor for ONE secret value that is
|
|
4
|
-
* EITHER a reference to an existing env key OR a freshly pasted secret. It knows
|
|
5
|
-
* nothing about the `!ENV ${KEY}` marker syntax or any wire format: it emits a
|
|
6
|
-
* discriminated {@link SecretRef} and the host maps that to whatever it stores
|
|
7
|
-
* (the consumer that mounts this — the connectors page's McpServersSection —
|
|
8
|
-
* writes an `!ENV ${KEY}` marker for a `key` ref and runs the combined
|
|
9
|
-
* store-then-mark op for a `paste`).
|
|
10
|
-
*
|
|
11
|
-
* WRITE-ONLY for a pasted secret: the plaintext lives only in local editor state
|
|
12
|
-
* until the user commits it, at which point it leaves the DOM entirely (held only
|
|
13
|
-
* in the emitted value the host holds) — the committed chip renders a fixed mask,
|
|
14
|
-
* never the secret, and offers NO reveal. A picked key's NAME is not itself the
|
|
15
|
-
* secret, so its chip is revealable on click.
|
|
16
|
-
*
|
|
17
|
-
* FAIL CLOSED: env-key picking is offered only when `keyPickingAvailable` is
|
|
18
|
-
* explicitly true (the host passes it from whether the projection carries the env
|
|
19
|
-
* route). Absent, the field is paste-only.
|
|
20
|
-
*/
|
|
21
2
|
import { useEffect, useState } from 'react';
|
|
22
3
|
import { Field } from '../components/field';
|
|
23
4
|
import { EyeIcon, EyeOffIcon } from '../components/icons';
|
|
@@ -72,13 +53,27 @@ export function SecretRefField({ value, onChange, availableKeys, keyPickingAvail
|
|
|
72
53
|
setRevealed((prev) => !prev);
|
|
73
54
|
} }), _jsx(Button, { type: "button", variant: "secondary", onClick: startEditing, children: value.source === 'key' ? 'Change reference' : 'Replace secret' })] }));
|
|
74
55
|
}
|
|
75
|
-
return (_jsxs("div", { "data-testid": idPrefix, children: [canPick ? (
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
56
|
+
return (_jsxs("div", { "data-testid": idPrefix, children: [canPick ? (_jsx(SecretSourceToggle, { label: label, effectiveMode: effectiveMode, onMode: setMode })) : null, _jsx(SecretEditorBody, { label: label, effectiveMode: effectiveMode, availableKeys: availableKeys, pickedKey: pickedKey, onPickKey: commitKey, draftSecret: draftSecret, onDraftChange: setDraftSecret, onCommitPaste: commitPaste, pasteDisabledReason: pasteDisabledReason, pasteBlocked: pasteBlocked })] }));
|
|
57
|
+
}
|
|
58
|
+
/** The key/paste source switch, shown only when key picking is available. */
|
|
59
|
+
function SecretSourceToggle({ label, effectiveMode, onMode, }) {
|
|
60
|
+
return (_jsxs("div", { className: "tai-row", role: "group", "aria-label": `${label} source`, children: [_jsx(Button, { type: "button", variant: effectiveMode === 'key' ? 'primary' : 'secondary', "aria-pressed": effectiveMode === 'key', onClick: () => {
|
|
61
|
+
onMode('key');
|
|
62
|
+
}, children: "Reference existing key" }), _jsx(Button, { type: "button", variant: effectiveMode === 'paste' ? 'primary' : 'secondary', "aria-pressed": effectiveMode === 'paste', onClick: () => {
|
|
63
|
+
onMode('paste');
|
|
64
|
+
}, children: "Paste new secret" })] }));
|
|
65
|
+
}
|
|
66
|
+
/** The active editor: a key Select (or an empty-keys hint) or the write-only paste input. */
|
|
67
|
+
function SecretEditorBody({ label, effectiveMode, availableKeys, pickedKey, onPickKey, draftSecret, onDraftChange, onCommitPaste, pasteDisabledReason, pasteBlocked, }) {
|
|
68
|
+
if (effectiveMode === 'key') {
|
|
69
|
+
if (availableKeys.length === 0) {
|
|
70
|
+
return _jsx("span", { className: "tai-field-hint", children: "No keys available" });
|
|
71
|
+
}
|
|
72
|
+
return (_jsx(Field, { label: label, children: _jsx(Select, { value: pickedKey === '' ? undefined : pickedKey, onValueChange: onPickKey, placeholder: "Select a key", options: availableKeys.map((key) => ({ value: key, label: key })) }) }));
|
|
73
|
+
}
|
|
74
|
+
return (_jsxs("div", { className: "tai-row", children: [_jsx("div", { style: { flex: 1 }, children: _jsx(Field, { label: label, error: pasteDisabledReason, children: _jsx(TextInput, { type: "password", value: draftSecret, onChange: (event) => {
|
|
75
|
+
onDraftChange(event.target.value);
|
|
76
|
+
}, autoComplete: "off", spellCheck: false, placeholder: "Paste a secret value" }) }) }), _jsx(Button, { type: "button", variant: "primary", disabled: draftSecret === '' || pasteBlocked, onClick: onCommitPaste, children: "Use secret" })] }));
|
|
82
77
|
}
|
|
83
78
|
/**
|
|
84
79
|
* The committed masked chip. A `key` ref names the key, revealable on click; a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SecretRefField.js","sourceRoot":"","sources":["../../src/schema-form/SecretRefField.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"SecretRefField.js","sourceRoot":"","sources":["../../src/schema-form/SecretRefField.tsx"],"names":[],"mappings":"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"}
|
|
@@ -7,120 +7,8 @@
|
|
|
7
7
|
* kind (a free-form JSON textarea) — a field is never silently dropped, and a
|
|
8
8
|
* shapeless one is edited as the JSON it is rather than dead-ending on a badge.
|
|
9
9
|
*/
|
|
10
|
-
import {
|
|
10
|
+
import type { ClassifiedField } from './field-model';
|
|
11
11
|
import type { JsonSchema } from './types';
|
|
12
|
-
/**
|
|
13
|
-
* How a string field accepts binary content as a JSON-serializable string.
|
|
14
|
-
* Derived from a field's JSON-Schema media annotations (see the `SchemaForm` module).
|
|
15
|
-
*/
|
|
16
|
-
export interface MediaUpload {
|
|
17
|
-
/**
|
|
18
|
-
* `base64` — the emitted value is the raw base64 body (no `data:` prefix),
|
|
19
|
-
* matching `contentEncoding: "base64"`. `data-url` — the emitted value is a
|
|
20
|
-
* full `data:<mime>;base64,<body>` URL, matching `format: "data-url"`.
|
|
21
|
-
*/
|
|
22
|
-
readonly encoding: 'base64' | 'data-url';
|
|
23
|
-
/**
|
|
24
|
-
* The `contentMediaType` constraint (e.g. `image/*`, `application/pdf`), used
|
|
25
|
-
* for MIME validation and the file picker's `accept`. `undefined` for a bare
|
|
26
|
-
* `format: "data-url"` field with no declared type.
|
|
27
|
-
*/
|
|
28
|
-
readonly mediaType: string | undefined;
|
|
29
|
-
/** A per-field byte cap from `contentMaxBytes`, if the schema pins one. */
|
|
30
|
-
readonly maxBytes: number | undefined;
|
|
31
|
-
}
|
|
32
|
-
/** One top-level key of the expression's input document, with a one-line gloss. */
|
|
33
|
-
export interface ExpressionAnnotationKey {
|
|
34
|
-
readonly name: string;
|
|
35
|
-
readonly gloss: string;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* The `x-tai42-expression` annotation on a string schema: the server declares
|
|
39
|
-
* that the field's value is authored in a pipeline expression language (only jq
|
|
40
|
-
* today) and optionally describes what `.` is for that expression. The renderer
|
|
41
|
-
* uses it to open the visual-editor door instead of a plain text box. The shape
|
|
42
|
-
* mirrors jq-studio's input-shape descriptor WITHOUT importing it — classification
|
|
43
|
-
* stays a pure schema concern; the renderer maps this onto a jq field declaration.
|
|
44
|
-
*/
|
|
45
|
-
export interface ExpressionAnnotation {
|
|
46
|
-
/** The declared language. An unknown language never reaches here — it classifies
|
|
47
|
-
* as a plain string, so an older client renders a newer server's field as the
|
|
48
|
-
* ordinary text input it always was. */
|
|
49
|
-
readonly language: 'jq';
|
|
50
|
-
/** Short chip label for what `.` is (e.g. "node envelope"). */
|
|
51
|
-
readonly label: string | undefined;
|
|
52
|
-
/** One sentence describing what `.` is in this field. */
|
|
53
|
-
readonly blurb: string | undefined;
|
|
54
|
-
/** The top-level keys of `.`, each with a one-liner. */
|
|
55
|
-
readonly keys: readonly ExpressionAnnotationKey[] | undefined;
|
|
56
|
-
/** What the expression must return (e.g. "true or false"). */
|
|
57
|
-
readonly returns: string | undefined;
|
|
58
|
-
/** Per-field caveats. */
|
|
59
|
-
readonly caveats: readonly string[] | undefined;
|
|
60
|
-
/** True when the annotation carries a `sample` — tracked separately because a
|
|
61
|
-
* legitimate sample may be JSON `null`. */
|
|
62
|
-
readonly hasSample: boolean;
|
|
63
|
-
/** A static skeleton of `.` for the Test panel. Meaningful only when
|
|
64
|
-
* {@link hasSample} is true. */
|
|
65
|
-
readonly sample: unknown;
|
|
66
|
-
}
|
|
67
|
-
/** One selectable variant of a union field. */
|
|
68
|
-
export interface UnionVariant {
|
|
69
|
-
readonly label: string;
|
|
70
|
-
/** The discriminator tag value, or `undefined` for a non-discriminated union. */
|
|
71
|
-
readonly tag: unknown;
|
|
72
|
-
/** The variant schema as written (unresolved — the renderer resolves it). */
|
|
73
|
-
readonly schema: JsonSchema;
|
|
74
|
-
}
|
|
75
|
-
/** The renderer-facing classification of a schema node. */
|
|
76
|
-
export type FieldModel = {
|
|
77
|
-
readonly kind: 'const';
|
|
78
|
-
readonly value: unknown;
|
|
79
|
-
} | {
|
|
80
|
-
readonly kind: 'enum';
|
|
81
|
-
readonly options: readonly EnumOption[];
|
|
82
|
-
} | {
|
|
83
|
-
readonly kind: 'string';
|
|
84
|
-
readonly format: string | undefined;
|
|
85
|
-
/** Present when media annotations opt the field into the upload control. */
|
|
86
|
-
readonly media: MediaUpload | undefined;
|
|
87
|
-
/** Present when a well-formed `x-tai42-expression` annotation opts the
|
|
88
|
-
* field into the jq expression editor (see {@link ExpressionAnnotation}). */
|
|
89
|
-
readonly expression: ExpressionAnnotation | undefined;
|
|
90
|
-
} | {
|
|
91
|
-
readonly kind: 'number';
|
|
92
|
-
readonly integer: boolean;
|
|
93
|
-
} | {
|
|
94
|
-
readonly kind: 'boolean';
|
|
95
|
-
} | {
|
|
96
|
-
readonly kind: 'array';
|
|
97
|
-
readonly items: JsonSchema;
|
|
98
|
-
} | {
|
|
99
|
-
readonly kind: 'object';
|
|
100
|
-
readonly properties: readonly (readonly [string, JsonSchema])[];
|
|
101
|
-
readonly required: ReadonlySet<string>;
|
|
102
|
-
} | {
|
|
103
|
-
readonly kind: 'record';
|
|
104
|
-
readonly values: JsonSchema;
|
|
105
|
-
} | {
|
|
106
|
-
readonly kind: 'union';
|
|
107
|
-
readonly variants: readonly UnionVariant[];
|
|
108
|
-
readonly discriminator: string | undefined;
|
|
109
|
-
} | {
|
|
110
|
-
readonly kind: 'json';
|
|
111
|
-
readonly jsonType: 'object' | 'array' | 'any';
|
|
112
|
-
readonly reason: string;
|
|
113
|
-
};
|
|
114
|
-
/** A fully classified field: its model plus resolved metadata. */
|
|
115
|
-
export interface ClassifiedField {
|
|
116
|
-
readonly model: FieldModel;
|
|
117
|
-
/** True when JSON `null` is an accepted value (a null-union member). */
|
|
118
|
-
readonly nullable: boolean;
|
|
119
|
-
/** The effective (ref-resolved) schema this classification describes. */
|
|
120
|
-
readonly schema: JsonSchema;
|
|
121
|
-
readonly title: string | undefined;
|
|
122
|
-
readonly description: string | undefined;
|
|
123
|
-
}
|
|
124
12
|
/**
|
|
125
13
|
* Classify a schema node (resolving `$ref` first). `wrapper` metadata (a
|
|
126
14
|
* ref-site title/description) is threaded down so a `{ $ref, title }` or a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classify.d.ts","sourceRoot":"","sources":["../../src/schema-form/classify.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"classify.d.ts","sourceRoot":"","sources":["../../src/schema-form/classify.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,eAAe,CAAC;AAYnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAkV1C;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,eAAe,CAWjF"}
|