@tai42/studio-sdk 16.0.0 → 16.0.1
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/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 +0 -5
- package/dist/components/extension-combo-builder.d.ts.map +1 -1
- package/dist/components/extension-combo-builder.js +4 -42
- 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 +57 -0
- package/dist/components/extension-combo-parts.js.map +1 -0
- 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/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 +6 -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/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 +30 -0
- package/dist/components/json-tree-nodes.d.ts.map +1 -0
- package/dist/components/json-tree-nodes.js +118 -0
- package/dist/components/json-tree-nodes.js.map +1 -0
- package/dist/components/json-tree.d.ts.map +1 -1
- package/dist/components/json-tree.js +7 -295
- 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/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/scroll-region.d.ts.map +1 -1
- package/dist/components/scroll-region.js +3 -298
- 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/templated-text-field.d.ts.map +1 -1
- package/dist/components/templated-text-field.js +10 -148
- 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/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 +2192 -2192
- package/dist/hooks/useApi.d.ts.map +1 -1
- package/dist/hooks/useSse.d.ts +3 -6
- package/dist/hooks/useSse.d.ts.map +1 -1
- package/dist/hooks/useSse.js +38 -451
- package/dist/hooks/useSse.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 +3 -2
- 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 +5 -0
- package/dist/navigation/use-back-forward-guard.d.ts.map +1 -0
- package/dist/navigation/use-back-forward-guard.js +82 -0
- package/dist/navigation/use-back-forward-guard.js.map +1 -0
- 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-form/SecretRefField.d.ts +2 -3
- package/dist/schema-form/SecretRefField.d.ts.map +1 -1
- package/dist/schema-form/SecretRefField.js +23 -12
- package/dist/schema-form/SecretRefField.js.map +1 -1
- package/dist/schema-form/classify.d.ts +1 -122
- package/dist/schema-form/classify.d.ts.map +1 -1
- package/dist/schema-form/classify.js +174 -237
- package/dist/schema-form/classify.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-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/media-field.d.ts +1 -1
- package/dist/schema-form/media-field.d.ts.map +1 -1
- package/dist/schema-form/media-field.js +47 -28
- package/dist/schema-form/media-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/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 +1 -1
- package/dist/schema-form/union.d.ts.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/StateAttachRow.d.ts.map +1 -1
- package/dist/state-binding/StateAttachRow.js +52 -36
- package/dist/state-binding/StateAttachRow.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/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/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 +114 -366
- package/src/components/extension-combo-builder.tsx +35 -152
- package/src/components/extension-combo-parts.tsx +237 -0
- package/src/components/fleet-report.tsx +97 -54
- 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/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 +5 -471
- package/src/components/observer-registry.ts +139 -0
- package/src/components/overflow-measure.ts +69 -0
- package/src/components/prose-regions.ts +153 -0
- package/src/components/scroll-region.tsx +20 -360
- package/src/components/tab-stop-parse.ts +217 -0
- package/src/components/templated-text-field.tsx +38 -330
- 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 +38 -142
- package/src/components/version-history-rows.tsx +220 -0
- 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/useSse.ts +50 -477
- package/src/navigation/app-link.tsx +70 -0
- package/src/navigation/context.tsx +11 -330
- 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 +2 -2
- package/src/navigation/types.ts +8 -11
- package/src/navigation/use-back-forward-guard.ts +90 -0
- package/src/plugin/registry.ts +111 -90
- package/src/schema-form/SecretRefField.tsx +121 -71
- package/src/schema-form/classify.ts +244 -395
- package/src/schema-form/default-value.ts +48 -17
- package/src/schema-form/enum-field.tsx +1 -1
- package/src/schema-form/field-model.ts +133 -0
- package/src/schema-form/field-node.tsx +94 -38
- package/src/schema-form/media-field.tsx +134 -65
- package/src/schema-form/string-annotations.ts +111 -0
- package/src/schema-form/string-field.tsx +1 -1
- package/src/schema-form/union-field.tsx +2 -1
- package/src/schema-form/union.ts +1 -1
- package/src/schema-form/validate.ts +184 -103
- package/src/state-binding/AdapterMapping.tsx +0 -0
- package/src/state-binding/StateAttachRow.tsx +222 -147
- package/src/state-binding/adapter-mapping-row.tsx +232 -0
- 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
|
@@ -2,11 +2,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
/**
|
|
3
3
|
* `SecretRefField` — a data-agnostic masked editor for ONE secret value that is
|
|
4
4
|
* EITHER a reference to an existing env key OR a freshly pasted secret. It knows
|
|
5
|
-
* nothing about
|
|
6
|
-
*
|
|
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`).
|
|
5
|
+
* nothing about any wire format: it emits a discriminated {@link SecretRef} and
|
|
6
|
+
* the host maps that to whatever it stores.
|
|
10
7
|
*
|
|
11
8
|
* WRITE-ONLY for a pasted secret: the plaintext lives only in local editor state
|
|
12
9
|
* until the user commits it, at which point it leaves the DOM entirely (held only
|
|
@@ -72,13 +69,27 @@ export function SecretRefField({ value, onChange, availableKeys, keyPickingAvail
|
|
|
72
69
|
setRevealed((prev) => !prev);
|
|
73
70
|
} }), _jsx(Button, { type: "button", variant: "secondary", onClick: startEditing, children: value.source === 'key' ? 'Change reference' : 'Replace secret' })] }));
|
|
74
71
|
}
|
|
75
|
-
return (_jsxs("div", { "data-testid": idPrefix, children: [canPick ? (
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
72
|
+
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 })] }));
|
|
73
|
+
}
|
|
74
|
+
/** The key/paste source switch, shown only when key picking is available. */
|
|
75
|
+
function SecretSourceToggle({ label, effectiveMode, onMode, }) {
|
|
76
|
+
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: () => {
|
|
77
|
+
onMode('key');
|
|
78
|
+
}, children: "Reference existing key" }), _jsx(Button, { type: "button", variant: effectiveMode === 'paste' ? 'primary' : 'secondary', "aria-pressed": effectiveMode === 'paste', onClick: () => {
|
|
79
|
+
onMode('paste');
|
|
80
|
+
}, children: "Paste new secret" })] }));
|
|
81
|
+
}
|
|
82
|
+
/** The active editor: a key Select (or an empty-keys hint) or the write-only paste input. */
|
|
83
|
+
function SecretEditorBody({ label, effectiveMode, availableKeys, pickedKey, onPickKey, draftSecret, onDraftChange, onCommitPaste, pasteDisabledReason, pasteBlocked, }) {
|
|
84
|
+
if (effectiveMode === 'key') {
|
|
85
|
+
if (availableKeys.length === 0) {
|
|
86
|
+
return _jsx("span", { className: "tai-field-hint", children: "No keys available" });
|
|
87
|
+
}
|
|
88
|
+
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 })) }) }));
|
|
89
|
+
}
|
|
90
|
+
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) => {
|
|
91
|
+
onDraftChange(event.target.value);
|
|
92
|
+
}, autoComplete: "off", spellCheck: false, placeholder: "Paste a secret value" }) }) }), _jsx(Button, { type: "button", variant: "primary", disabled: draftSecret === '' || pasteBlocked, onClick: onCommitPaste, children: "Use secret" })] }));
|
|
82
93
|
}
|
|
83
94
|
/**
|
|
84
95
|
* 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":";AAAA
|
|
1
|
+
{"version":3,"file":"SecretRefField.js","sourceRoot":"","sources":["../../src/schema-form/SecretRefField.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,126 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
* The single source of truth for "what kind of field is this schema?". Both the
|
|
3
|
-
* renderer and the validator classify through here so a construct is treated
|
|
4
|
-
* identically everywhere. Classification resolves `$ref`, normalizes `anyOf`/
|
|
5
|
-
* `oneOf` (null-union → nullable single field; multi-member → variant selector),
|
|
6
|
-
* and lands every shape it has no structured editor for on the explicit `json`
|
|
7
|
-
* kind (a free-form JSON textarea) — a field is never silently dropped, and a
|
|
8
|
-
* shapeless one is edited as the JSON it is rather than dead-ending on a badge.
|
|
9
|
-
*/
|
|
10
|
-
import { type EnumOption } from './resolve';
|
|
1
|
+
import type { ClassifiedField } from './field-model';
|
|
11
2
|
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
3
|
/**
|
|
125
4
|
* Classify a schema node (resolving `$ref` first). `wrapper` metadata (a
|
|
126
5
|
* 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":"
|
|
1
|
+
{"version":3,"file":"classify.d.ts","sourceRoot":"","sources":["../../src/schema-form/classify.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,eAAe,CAAC;AAEnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAkV1C;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,eAAe,CAWjF"}
|