optimizely-opal.opal-tools-sdk 0.1.16.dev0__tar.gz → 0.1.18.dev0__tar.gz
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.
- {optimizely_opal_opal_tools_sdk-0.1.16.dev0 → optimizely_opal_opal_tools_sdk-0.1.18.dev0}/PKG-INFO +1 -1
- {optimizely_opal_opal_tools_sdk-0.1.16.dev0 → optimizely_opal_opal_tools_sdk-0.1.18.dev0}/opal_tools_sdk/proteus.py +561 -88
- {optimizely_opal_opal_tools_sdk-0.1.16.dev0 → optimizely_opal_opal_tools_sdk-0.1.18.dev0}/opal_tools_sdk/service.py +2 -0
- {optimizely_opal_opal_tools_sdk-0.1.16.dev0 → optimizely_opal_opal_tools_sdk-0.1.18.dev0}/optimizely_opal.opal_tools_sdk.egg-info/PKG-INFO +1 -1
- {optimizely_opal_opal_tools_sdk-0.1.16.dev0 → optimizely_opal_opal_tools_sdk-0.1.18.dev0}/pyproject.toml +1 -1
- {optimizely_opal_opal_tools_sdk-0.1.16.dev0 → optimizely_opal_opal_tools_sdk-0.1.18.dev0}/setup.py +1 -1
- {optimizely_opal_opal_tools_sdk-0.1.16.dev0 → optimizely_opal_opal_tools_sdk-0.1.18.dev0}/README.md +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.16.dev0 → optimizely_opal_opal_tools_sdk-0.1.18.dev0}/opal_tools_sdk/__init__.py +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.16.dev0 → optimizely_opal_opal_tools_sdk-0.1.18.dev0}/opal_tools_sdk/_registry.py +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.16.dev0 → optimizely_opal_opal_tools_sdk-0.1.18.dev0}/opal_tools_sdk/auth.py +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.16.dev0 → optimizely_opal_opal_tools_sdk-0.1.18.dev0}/opal_tools_sdk/decorators.py +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.16.dev0 → optimizely_opal_opal_tools_sdk-0.1.18.dev0}/opal_tools_sdk/logging.py +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.16.dev0 → optimizely_opal_opal_tools_sdk-0.1.18.dev0}/opal_tools_sdk/models.py +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.16.dev0 → optimizely_opal_opal_tools_sdk-0.1.18.dev0}/opal_tools_sdk/ui.py +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.16.dev0 → optimizely_opal_opal_tools_sdk-0.1.18.dev0}/optimizely_opal.opal_tools_sdk.egg-info/SOURCES.txt +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.16.dev0 → optimizely_opal_opal_tools_sdk-0.1.18.dev0}/optimizely_opal.opal_tools_sdk.egg-info/dependency_links.txt +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.16.dev0 → optimizely_opal_opal_tools_sdk-0.1.18.dev0}/optimizely_opal.opal_tools_sdk.egg-info/requires.txt +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.16.dev0 → optimizely_opal_opal_tools_sdk-0.1.18.dev0}/optimizely_opal.opal_tools_sdk.egg-info/top_level.txt +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.16.dev0 → optimizely_opal_opal_tools_sdk-0.1.18.dev0}/setup.cfg +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.16.dev0 → optimizely_opal_opal_tools_sdk-0.1.18.dev0}/tests/test_integration.py +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.16.dev0 → optimizely_opal_opal_tools_sdk-0.1.18.dev0}/tests/test_proteus.py +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: proteus-document-spec.json
|
|
3
|
-
# timestamp: 2026-03-
|
|
3
|
+
# timestamp: 2026-03-12T17:59:00+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
7
|
from typing import Any, Literal
|
|
8
8
|
|
|
9
|
-
from pydantic import BaseModel, ConfigDict, Field, RootModel
|
|
9
|
+
from pydantic import BaseModel, ConfigDict, Field, RootModel, constr
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
class OpalProteusDocumentSpecification(RootModel[Any]):
|
|
@@ -35,46 +35,33 @@ class ProteusEventHandler2(BaseModel):
|
|
|
35
35
|
message: str = Field(..., description='Message to send to LLM via sendNewMessage()')
|
|
36
36
|
|
|
37
37
|
|
|
38
|
-
class ProteusEventHandler3(BaseModel):
|
|
39
|
-
"""
|
|
40
|
-
Client-side component action - for downloading a URL
|
|
41
|
-
"""
|
|
42
|
-
|
|
43
|
-
model_config = ConfigDict(
|
|
44
|
-
extra='forbid',
|
|
45
|
-
)
|
|
46
|
-
action: Literal['download'] = Field(default='download', description='The action type')
|
|
47
|
-
url: str = Field(..., description='URL to download')
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
class ProteusEventHandler(
|
|
51
|
-
RootModel[ProteusEventHandler1 | ProteusEventHandler2 | ProteusEventHandler3]
|
|
52
|
-
):
|
|
53
|
-
root: ProteusEventHandler1 | ProteusEventHandler2 | ProteusEventHandler3 = Field(
|
|
54
|
-
...,
|
|
55
|
-
description='Handler for user interactions - a server-side tool call, client-side message, or client-side component action',
|
|
56
|
-
)
|
|
57
|
-
|
|
58
|
-
|
|
59
38
|
class Series(BaseModel):
|
|
60
39
|
model_config = ConfigDict(
|
|
61
40
|
extra='forbid',
|
|
62
41
|
)
|
|
63
|
-
color: str | None = Field(default=None, description='Series color')
|
|
64
42
|
dataKey: str = Field(..., description='Key in data records for this series')
|
|
65
|
-
labelKey: str | None = Field(
|
|
66
|
-
default=None,
|
|
67
|
-
description='Key in data records for pre-formatted labels displayed above bars',
|
|
68
|
-
)
|
|
69
43
|
name: str | None = Field(default=None, description='Display name for legend')
|
|
70
44
|
|
|
71
45
|
|
|
46
|
+
class Format(BaseModel):
|
|
47
|
+
"""
|
|
48
|
+
Formatter with options
|
|
49
|
+
"""
|
|
50
|
+
|
|
51
|
+
options: dict[str, Any] | None = None
|
|
52
|
+
type: str
|
|
53
|
+
|
|
54
|
+
|
|
72
55
|
class Column(BaseModel):
|
|
73
56
|
model_config = ConfigDict(
|
|
74
57
|
extra='forbid',
|
|
75
58
|
)
|
|
76
59
|
accessorKey: str = Field(..., description='Key in data objects')
|
|
60
|
+
format: str | Format | None = Field(
|
|
61
|
+
default=None, description="Format to apply to cell values (e.g. 'Number', 'DateTime')"
|
|
62
|
+
)
|
|
77
63
|
header: str = Field(..., description='Column header text')
|
|
64
|
+
size: float | None = Field(default=None, description='Column size')
|
|
78
65
|
|
|
79
66
|
|
|
80
67
|
class Marks(BaseModel):
|
|
@@ -93,11 +80,30 @@ class Option(BaseModel):
|
|
|
93
80
|
value: str = Field(..., description='Return a unique key for each item')
|
|
94
81
|
|
|
95
82
|
|
|
83
|
+
class Formatter(BaseModel):
|
|
84
|
+
"""
|
|
85
|
+
Formatter with custom Intl options. 'type' selects the formatter, 'options' are passed to the Intl constructor.
|
|
86
|
+
"""
|
|
87
|
+
|
|
88
|
+
model_config = ConfigDict(
|
|
89
|
+
extra='forbid',
|
|
90
|
+
)
|
|
91
|
+
options: dict[str, Any] | None = Field(
|
|
92
|
+
default=None,
|
|
93
|
+
description='Options passed to the Intl formatter constructor (e.g., Intl.DateTimeFormatOptions or Intl.NumberFormatOptions)',
|
|
94
|
+
)
|
|
95
|
+
type: Literal['DateTime', 'Number'] = Field(..., description='Formatter type')
|
|
96
|
+
|
|
97
|
+
|
|
96
98
|
class ProteusValue(BaseModel):
|
|
97
99
|
model_config = ConfigDict(
|
|
98
100
|
extra='forbid',
|
|
99
101
|
)
|
|
100
102
|
field_type: Literal['Value'] = Field(default='Value', alias='$type')
|
|
103
|
+
formatter: Literal['DateTime', 'Number'] | Formatter | None = Field(
|
|
104
|
+
default=None,
|
|
105
|
+
description='Optional formatter to apply to the resolved value. Can be a string shorthand or an object with type and options for Intl formatters.',
|
|
106
|
+
)
|
|
101
107
|
path: str = Field(
|
|
102
108
|
...,
|
|
103
109
|
description="Path to a value in the data. Absolute paths start with '/' and resolve from the root (e.g., '/title', '/options/0/label'). Inside a Map template, paths without a leading '/' are relative to the current item (e.g., 'title' resolves to each item's 'title' field).",
|
|
@@ -1681,9 +1687,9 @@ class SprinklePropZ(
|
|
|
1681
1687
|
)
|
|
1682
1688
|
|
|
1683
1689
|
|
|
1684
|
-
class
|
|
1690
|
+
class ProteusCondition1(BaseModel):
|
|
1685
1691
|
"""
|
|
1686
|
-
|
|
1692
|
+
Condition for Show component. Can be a comparison operator, logical AND, or logical OR. Supports nesting.
|
|
1687
1693
|
"""
|
|
1688
1694
|
|
|
1689
1695
|
model_config = ConfigDict(
|
|
@@ -1694,9 +1700,9 @@ class ProteusAtomicCondition1(BaseModel):
|
|
|
1694
1700
|
)
|
|
1695
1701
|
|
|
1696
1702
|
|
|
1697
|
-
class
|
|
1703
|
+
class ProteusCondition2(BaseModel):
|
|
1698
1704
|
"""
|
|
1699
|
-
|
|
1705
|
+
Condition for Show component. Can be a comparison operator, logical AND, or logical OR. Supports nesting.
|
|
1700
1706
|
"""
|
|
1701
1707
|
|
|
1702
1708
|
model_config = ConfigDict(
|
|
@@ -1707,9 +1713,9 @@ class ProteusAtomicCondition2(BaseModel):
|
|
|
1707
1713
|
)
|
|
1708
1714
|
|
|
1709
1715
|
|
|
1710
|
-
class
|
|
1716
|
+
class ProteusCondition3(BaseModel):
|
|
1711
1717
|
"""
|
|
1712
|
-
|
|
1718
|
+
Condition for Show component. Can be a comparison operator, logical AND, or logical OR. Supports nesting.
|
|
1713
1719
|
"""
|
|
1714
1720
|
|
|
1715
1721
|
model_config = ConfigDict(
|
|
@@ -1720,9 +1726,9 @@ class ProteusAtomicCondition3(BaseModel):
|
|
|
1720
1726
|
)
|
|
1721
1727
|
|
|
1722
1728
|
|
|
1723
|
-
class
|
|
1729
|
+
class ProteusCondition4(BaseModel):
|
|
1724
1730
|
"""
|
|
1725
|
-
|
|
1731
|
+
Condition for Show component. Can be a comparison operator, logical AND, or logical OR. Supports nesting.
|
|
1726
1732
|
"""
|
|
1727
1733
|
|
|
1728
1734
|
model_config = ConfigDict(
|
|
@@ -1733,9 +1739,9 @@ class ProteusAtomicCondition4(BaseModel):
|
|
|
1733
1739
|
)
|
|
1734
1740
|
|
|
1735
1741
|
|
|
1736
|
-
class
|
|
1742
|
+
class ProteusCondition5(BaseModel):
|
|
1737
1743
|
"""
|
|
1738
|
-
|
|
1744
|
+
Condition for Show component. Can be a comparison operator, logical AND, or logical OR. Supports nesting.
|
|
1739
1745
|
"""
|
|
1740
1746
|
|
|
1741
1747
|
model_config = ConfigDict(
|
|
@@ -1746,9 +1752,9 @@ class ProteusAtomicCondition5(BaseModel):
|
|
|
1746
1752
|
)
|
|
1747
1753
|
|
|
1748
1754
|
|
|
1749
|
-
class
|
|
1755
|
+
class ProteusCondition6(BaseModel):
|
|
1750
1756
|
"""
|
|
1751
|
-
|
|
1757
|
+
Condition for Show component. Can be a comparison operator, logical AND, or logical OR. Supports nesting.
|
|
1752
1758
|
"""
|
|
1753
1759
|
|
|
1754
1760
|
model_config = ConfigDict(
|
|
@@ -1759,9 +1765,9 @@ class ProteusAtomicCondition6(BaseModel):
|
|
|
1759
1765
|
)
|
|
1760
1766
|
|
|
1761
1767
|
|
|
1762
|
-
class
|
|
1768
|
+
class ProteusCondition7(BaseModel):
|
|
1763
1769
|
"""
|
|
1764
|
-
|
|
1770
|
+
Condition for Show component. Can be a comparison operator, logical AND, or logical OR. Supports nesting.
|
|
1765
1771
|
"""
|
|
1766
1772
|
|
|
1767
1773
|
model_config = ConfigDict(
|
|
@@ -1774,63 +1780,39 @@ class ProteusAtomicCondition7(BaseModel):
|
|
|
1774
1780
|
)
|
|
1775
1781
|
|
|
1776
1782
|
|
|
1777
|
-
class
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
| ProteusAtomicCondition3
|
|
1782
|
-
| ProteusAtomicCondition4
|
|
1783
|
-
| ProteusAtomicCondition5
|
|
1784
|
-
| ProteusAtomicCondition6
|
|
1785
|
-
| ProteusAtomicCondition7
|
|
1786
|
-
]
|
|
1787
|
-
):
|
|
1788
|
-
root: (
|
|
1789
|
-
ProteusAtomicCondition1
|
|
1790
|
-
| ProteusAtomicCondition2
|
|
1791
|
-
| ProteusAtomicCondition3
|
|
1792
|
-
| ProteusAtomicCondition4
|
|
1793
|
-
| ProteusAtomicCondition5
|
|
1794
|
-
| ProteusAtomicCondition6
|
|
1795
|
-
| ProteusAtomicCondition7
|
|
1796
|
-
) = Field(
|
|
1797
|
-
...,
|
|
1798
|
-
description='Simple comparison condition - single operator only (used in OR arrays to avoid recursion)',
|
|
1799
|
-
)
|
|
1800
|
-
|
|
1783
|
+
class ProteusEventHandler3(BaseModel):
|
|
1784
|
+
"""
|
|
1785
|
+
Client-side component action - for downloading a URL
|
|
1786
|
+
"""
|
|
1801
1787
|
|
|
1802
|
-
class Or(BaseModel):
|
|
1803
1788
|
model_config = ConfigDict(
|
|
1804
1789
|
extra='forbid',
|
|
1805
1790
|
)
|
|
1806
|
-
|
|
1791
|
+
action: Literal['download'] = Field(default='download', description='The action type')
|
|
1792
|
+
url: ProteusValue | str = Field(..., description='URL to download')
|
|
1793
|
+
|
|
1794
|
+
|
|
1795
|
+
class ProteusEventHandler(
|
|
1796
|
+
RootModel[ProteusEventHandler1 | ProteusEventHandler2 | ProteusEventHandler3]
|
|
1797
|
+
):
|
|
1798
|
+
root: ProteusEventHandler1 | ProteusEventHandler2 | ProteusEventHandler3 = Field(
|
|
1807
1799
|
...,
|
|
1808
|
-
|
|
1809
|
-
description='Logical AND - returns true if all conditions are true',
|
|
1810
|
-
min_length=1,
|
|
1800
|
+
description='Handler for user interactions - a server-side tool call, client-side message, or client-side component action',
|
|
1811
1801
|
)
|
|
1812
1802
|
|
|
1813
1803
|
|
|
1814
|
-
class
|
|
1804
|
+
class ProteusZip(BaseModel):
|
|
1815
1805
|
"""
|
|
1816
|
-
|
|
1806
|
+
Zips multiple parallel arrays into an array of objects. Each key in 'sources' becomes a property in the resulting row objects.
|
|
1817
1807
|
"""
|
|
1818
1808
|
|
|
1819
1809
|
model_config = ConfigDict(
|
|
1820
1810
|
extra='forbid',
|
|
1821
1811
|
)
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
alias='or',
|
|
1825
|
-
description='Logical OR - returns true if any condition is true',
|
|
1826
|
-
min_length=1,
|
|
1827
|
-
)
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
class ProteusCondition(RootModel[ProteusAtomicCondition | ProteusCondition1]):
|
|
1831
|
-
root: ProteusAtomicCondition | ProteusCondition1 = Field(
|
|
1812
|
+
field_type: Literal['Zip'] = Field(default='Zip', alias='$type')
|
|
1813
|
+
sources: dict[constr(pattern=r'.*'), ProteusValue | list[Any]] = Field(
|
|
1832
1814
|
...,
|
|
1833
|
-
description='
|
|
1815
|
+
description='Map of output property names to array sources. Each source should resolve to an array of the same length.',
|
|
1834
1816
|
)
|
|
1835
1817
|
|
|
1836
1818
|
|
|
@@ -1839,11 +1821,12 @@ class ProteusChart(BaseModel):
|
|
|
1839
1821
|
extra='forbid',
|
|
1840
1822
|
)
|
|
1841
1823
|
field_type: Literal['Chart'] = Field(default='Chart', alias='$type')
|
|
1842
|
-
data: list[dict[str, Any]] | ProteusValue | None = Field(
|
|
1843
|
-
default=None,
|
|
1824
|
+
data: list[dict[str, Any]] | ProteusValue | ProteusZip | None = Field(
|
|
1825
|
+
default=None,
|
|
1826
|
+
description='Chart data records, either inline, a ProteusValue reference, or a ProteusZip transformation',
|
|
1844
1827
|
)
|
|
1845
1828
|
series: list[Series] | None = Field(default=None, description='Data series configuration')
|
|
1846
|
-
type: Literal['bar'] = Field(default=
|
|
1829
|
+
type: Literal['bar', 'line'] | None = Field(default=None, description='Chart type')
|
|
1847
1830
|
xAxisKey: str | None = Field(default=None, description='Key in data records for x-axis labels')
|
|
1848
1831
|
|
|
1849
1832
|
|
|
@@ -1853,7 +1836,71 @@ class ProteusDataTable(BaseModel):
|
|
|
1853
1836
|
)
|
|
1854
1837
|
field_type: Literal['DataTable'] = Field(default='DataTable', alias='$type')
|
|
1855
1838
|
columns: list[Column] | None = Field(default=None, description='Column definitions')
|
|
1856
|
-
data: list[dict[str, Any]] | ProteusValue | None = None
|
|
1839
|
+
data: list[dict[str, Any]] | ProteusValue | ProteusZip | None = None
|
|
1840
|
+
|
|
1841
|
+
|
|
1842
|
+
class ProteusIconCalendar(BaseModel):
|
|
1843
|
+
model_config = ConfigDict(
|
|
1844
|
+
extra='forbid',
|
|
1845
|
+
)
|
|
1846
|
+
field_type: Literal['IconCalendar'] = Field(default='IconCalendar', alias='$type')
|
|
1847
|
+
alignItems: SprinklePropAlignItems | None = None
|
|
1848
|
+
alignSelf: SprinklePropAlignSelf | None = None
|
|
1849
|
+
animation: SprinklePropAnimation | None = None
|
|
1850
|
+
backgroundImage: SprinklePropBackgroundImage | None = None
|
|
1851
|
+
bg: SprinklePropBg | None = None
|
|
1852
|
+
border: SprinklePropBorder | None = None
|
|
1853
|
+
borderB: SprinklePropBorderB | None = None
|
|
1854
|
+
borderColor: SprinklePropBorderColor | None = None
|
|
1855
|
+
borderL: SprinklePropBorderL | None = None
|
|
1856
|
+
borderR: SprinklePropBorderR | None = None
|
|
1857
|
+
borderT: SprinklePropBorderT | None = None
|
|
1858
|
+
color: SprinklePropColor | None = None
|
|
1859
|
+
cursor: SprinklePropCursor | None = None
|
|
1860
|
+
display: SprinklePropDisplay | None = None
|
|
1861
|
+
flex: SprinklePropFlex | None = None
|
|
1862
|
+
flexDirection: SprinklePropFlexDirection | None = None
|
|
1863
|
+
flexWrap: SprinklePropFlexWrap | None = None
|
|
1864
|
+
fontFamily: SprinklePropFontFamily | None = None
|
|
1865
|
+
fontSize: SprinklePropFontSize | None = None
|
|
1866
|
+
fontWeight: SprinklePropFontWeight | None = None
|
|
1867
|
+
gap: SprinklePropGap | None = None
|
|
1868
|
+
gridColumn: SprinklePropGridColumn | None = None
|
|
1869
|
+
gridTemplateColumns: SprinklePropGridTemplateColumns | None = None
|
|
1870
|
+
h: SprinklePropH | None = None
|
|
1871
|
+
justifyContent: SprinklePropJustifyContent | None = None
|
|
1872
|
+
justifyItems: SprinklePropJustifyItems | None = None
|
|
1873
|
+
m: SprinklePropM | None = None
|
|
1874
|
+
maxH: SprinklePropMaxH | None = None
|
|
1875
|
+
maxW: SprinklePropMaxW | None = None
|
|
1876
|
+
mb: SprinklePropMb | None = None
|
|
1877
|
+
ml: SprinklePropMl | None = None
|
|
1878
|
+
mr: SprinklePropMr | None = None
|
|
1879
|
+
mt: SprinklePropMt | None = None
|
|
1880
|
+
mx: SprinklePropMx | None = None
|
|
1881
|
+
my: SprinklePropMy | None = None
|
|
1882
|
+
objectFit: SprinklePropObjectFit | None = None
|
|
1883
|
+
overflow: SprinklePropOverflow | None = None
|
|
1884
|
+
overflowX: SprinklePropOverflowX | None = None
|
|
1885
|
+
overflowY: SprinklePropOverflowY | None = None
|
|
1886
|
+
p: SprinklePropP | None = None
|
|
1887
|
+
pb: SprinklePropPb | None = None
|
|
1888
|
+
pl: SprinklePropPl | None = None
|
|
1889
|
+
placeItems: SprinklePropPlaceItems | None = None
|
|
1890
|
+
pointerEvents: SprinklePropPointerEvents | None = None
|
|
1891
|
+
pr: SprinklePropPr | None = None
|
|
1892
|
+
pt: SprinklePropPt | None = None
|
|
1893
|
+
px: SprinklePropPx | None = None
|
|
1894
|
+
py: SprinklePropPy | None = None
|
|
1895
|
+
rounded: SprinklePropRounded | None = None
|
|
1896
|
+
shadow: SprinklePropShadow | None = None
|
|
1897
|
+
size: SprinklePropSize | None = None
|
|
1898
|
+
textAlign: SprinklePropTextAlign | None = None
|
|
1899
|
+
textTransform: SprinklePropTextTransform | None = None
|
|
1900
|
+
transition: SprinklePropTransition | None = None
|
|
1901
|
+
w: SprinklePropW | None = None
|
|
1902
|
+
whiteSpace: SprinklePropWhiteSpace | None = None
|
|
1903
|
+
z: SprinklePropZ | None = None
|
|
1857
1904
|
|
|
1858
1905
|
|
|
1859
1906
|
class ProteusImage(BaseModel):
|
|
@@ -2190,6 +2237,9 @@ class ProteusTextarea(BaseModel):
|
|
|
2190
2237
|
pt: SprinklePropPt | None = None
|
|
2191
2238
|
px: SprinklePropPx | None = None
|
|
2192
2239
|
py: SprinklePropPy | None = None
|
|
2240
|
+
required: bool | ProteusValue | None = Field(
|
|
2241
|
+
default=None, description='Whether selecting this input is required.'
|
|
2242
|
+
)
|
|
2193
2243
|
resize: Literal['none'] | Literal['auto'] | Literal['vertical'] | ProteusValue | None = Field(
|
|
2194
2244
|
default=None, description='Control whether resizing mode is manual, automatic, or disabled.'
|
|
2195
2245
|
)
|
|
@@ -2279,6 +2329,38 @@ class ProteusTime(BaseModel):
|
|
|
2279
2329
|
z: SprinklePropZ | None = None
|
|
2280
2330
|
|
|
2281
2331
|
|
|
2332
|
+
class ProteusCondition8(BaseModel):
|
|
2333
|
+
"""
|
|
2334
|
+
Condition for Show component. Can be a comparison operator, logical AND, or logical OR. Supports nesting.
|
|
2335
|
+
"""
|
|
2336
|
+
|
|
2337
|
+
model_config = ConfigDict(
|
|
2338
|
+
extra='forbid',
|
|
2339
|
+
)
|
|
2340
|
+
and_: list[ProteusCondition] = Field(
|
|
2341
|
+
...,
|
|
2342
|
+
alias='and',
|
|
2343
|
+
description='Logical AND - returns true if all conditions are true',
|
|
2344
|
+
min_length=1,
|
|
2345
|
+
)
|
|
2346
|
+
|
|
2347
|
+
|
|
2348
|
+
class ProteusCondition9(BaseModel):
|
|
2349
|
+
"""
|
|
2350
|
+
Condition for Show component. Can be a comparison operator, logical AND, or logical OR. Supports nesting.
|
|
2351
|
+
"""
|
|
2352
|
+
|
|
2353
|
+
model_config = ConfigDict(
|
|
2354
|
+
extra='forbid',
|
|
2355
|
+
)
|
|
2356
|
+
or_: list[ProteusCondition] = Field(
|
|
2357
|
+
...,
|
|
2358
|
+
alias='or',
|
|
2359
|
+
description='Logical OR - returns true if any condition is true',
|
|
2360
|
+
min_length=1,
|
|
2361
|
+
)
|
|
2362
|
+
|
|
2363
|
+
|
|
2282
2364
|
class ProteusDocument(BaseModel):
|
|
2283
2365
|
model_config = ConfigDict(
|
|
2284
2366
|
extra='forbid',
|
|
@@ -2389,6 +2471,93 @@ class ProteusAction(BaseModel):
|
|
|
2389
2471
|
)
|
|
2390
2472
|
|
|
2391
2473
|
|
|
2474
|
+
class ProteusAvatar(BaseModel):
|
|
2475
|
+
model_config = ConfigDict(
|
|
2476
|
+
extra='forbid',
|
|
2477
|
+
)
|
|
2478
|
+
field_type: Literal['Avatar'] = Field(default='Avatar', alias='$type')
|
|
2479
|
+
alignItems: SprinklePropAlignItems | None = None
|
|
2480
|
+
alignSelf: SprinklePropAlignSelf | None = None
|
|
2481
|
+
animation: SprinklePropAnimation | None = None
|
|
2482
|
+
backgroundImage: SprinklePropBackgroundImage | None = None
|
|
2483
|
+
bg: SprinklePropBg | None = None
|
|
2484
|
+
border: SprinklePropBorder | None = None
|
|
2485
|
+
borderB: SprinklePropBorderB | None = None
|
|
2486
|
+
borderColor: SprinklePropBorderColor | None = None
|
|
2487
|
+
borderL: SprinklePropBorderL | None = None
|
|
2488
|
+
borderR: SprinklePropBorderR | None = None
|
|
2489
|
+
borderT: SprinklePropBorderT | None = None
|
|
2490
|
+
children: ProteusNode | None = None
|
|
2491
|
+
color: SprinklePropColor | None = None
|
|
2492
|
+
colorScheme: Literal['purple'] | Literal['neutral'] | ProteusValue | None = Field(
|
|
2493
|
+
default=None, description='Control the avatar fallback background and text colors.'
|
|
2494
|
+
)
|
|
2495
|
+
cursor: SprinklePropCursor | None = None
|
|
2496
|
+
display: SprinklePropDisplay | None = None
|
|
2497
|
+
fallback: Literal['opal'] | Literal['team'] | Literal['user'] | ProteusValue | None = Field(
|
|
2498
|
+
default=None, description='The fallback icon to display when no name or image is given.'
|
|
2499
|
+
)
|
|
2500
|
+
flex: SprinklePropFlex | None = None
|
|
2501
|
+
flexDirection: SprinklePropFlexDirection | None = None
|
|
2502
|
+
flexWrap: SprinklePropFlexWrap | None = None
|
|
2503
|
+
fontFamily: SprinklePropFontFamily | None = None
|
|
2504
|
+
fontSize: SprinklePropFontSize | None = None
|
|
2505
|
+
fontWeight: SprinklePropFontWeight | None = None
|
|
2506
|
+
gap: SprinklePropGap | None = None
|
|
2507
|
+
gridColumn: SprinklePropGridColumn | None = None
|
|
2508
|
+
gridTemplateColumns: SprinklePropGridTemplateColumns | None = None
|
|
2509
|
+
h: SprinklePropH | None = None
|
|
2510
|
+
justifyContent: SprinklePropJustifyContent | None = None
|
|
2511
|
+
justifyItems: SprinklePropJustifyItems | None = None
|
|
2512
|
+
m: SprinklePropM | None = None
|
|
2513
|
+
maxH: SprinklePropMaxH | None = None
|
|
2514
|
+
maxW: SprinklePropMaxW | None = None
|
|
2515
|
+
mb: SprinklePropMb | None = None
|
|
2516
|
+
ml: SprinklePropMl | None = None
|
|
2517
|
+
mr: SprinklePropMr | None = None
|
|
2518
|
+
mt: SprinklePropMt | None = None
|
|
2519
|
+
mx: SprinklePropMx | None = None
|
|
2520
|
+
my: SprinklePropMy | None = None
|
|
2521
|
+
name: str | ProteusValue | None = Field(
|
|
2522
|
+
default=None, description='Use name to generate initials to show inside the avatar.'
|
|
2523
|
+
)
|
|
2524
|
+
objectFit: SprinklePropObjectFit | None = None
|
|
2525
|
+
overflow: SprinklePropOverflow | None = None
|
|
2526
|
+
overflowX: SprinklePropOverflowX | None = None
|
|
2527
|
+
overflowY: SprinklePropOverflowY | None = None
|
|
2528
|
+
p: SprinklePropP | None = None
|
|
2529
|
+
pb: SprinklePropPb | None = None
|
|
2530
|
+
pl: SprinklePropPl | None = None
|
|
2531
|
+
placeItems: SprinklePropPlaceItems | None = None
|
|
2532
|
+
pointerEvents: SprinklePropPointerEvents | None = None
|
|
2533
|
+
pr: SprinklePropPr | None = None
|
|
2534
|
+
pt: SprinklePropPt | None = None
|
|
2535
|
+
px: SprinklePropPx | None = None
|
|
2536
|
+
py: SprinklePropPy | None = None
|
|
2537
|
+
rounded: SprinklePropRounded | None = None
|
|
2538
|
+
shadow: SprinklePropShadow | None = None
|
|
2539
|
+
size: (
|
|
2540
|
+
Literal['xs']
|
|
2541
|
+
| Literal['sm']
|
|
2542
|
+
| Literal['md']
|
|
2543
|
+
| Literal['lg']
|
|
2544
|
+
| Literal['xl']
|
|
2545
|
+
| Literal['3xl']
|
|
2546
|
+
| Literal['2xs']
|
|
2547
|
+
| ProteusValue
|
|
2548
|
+
| None
|
|
2549
|
+
) = Field(default=None, description='Control the size of the avatar.')
|
|
2550
|
+
src: str | ProteusValue | None = Field(
|
|
2551
|
+
default=None, description='Render the image inside the avatar.'
|
|
2552
|
+
)
|
|
2553
|
+
textAlign: SprinklePropTextAlign | None = None
|
|
2554
|
+
textTransform: SprinklePropTextTransform | None = None
|
|
2555
|
+
transition: SprinklePropTransition | None = None
|
|
2556
|
+
w: SprinklePropW | None = None
|
|
2557
|
+
whiteSpace: SprinklePropWhiteSpace | None = None
|
|
2558
|
+
z: SprinklePropZ | None = None
|
|
2559
|
+
|
|
2560
|
+
|
|
2392
2561
|
class ProteusBadge(BaseModel):
|
|
2393
2562
|
model_config = ConfigDict(
|
|
2394
2563
|
extra='forbid',
|
|
@@ -2534,6 +2703,241 @@ class ProteusCancelAction(BaseModel):
|
|
|
2534
2703
|
)
|
|
2535
2704
|
|
|
2536
2705
|
|
|
2706
|
+
class ProteusCard(BaseModel):
|
|
2707
|
+
model_config = ConfigDict(
|
|
2708
|
+
extra='forbid',
|
|
2709
|
+
)
|
|
2710
|
+
field_type: Literal['Card'] = Field(default='Card', alias='$type')
|
|
2711
|
+
alignItems: SprinklePropAlignItems | None = None
|
|
2712
|
+
alignSelf: SprinklePropAlignSelf | None = None
|
|
2713
|
+
animation: SprinklePropAnimation | None = None
|
|
2714
|
+
backgroundImage: SprinklePropBackgroundImage | None = None
|
|
2715
|
+
bg: SprinklePropBg | None = None
|
|
2716
|
+
border: SprinklePropBorder | None = None
|
|
2717
|
+
borderB: SprinklePropBorderB | None = None
|
|
2718
|
+
borderColor: SprinklePropBorderColor | None = None
|
|
2719
|
+
borderL: SprinklePropBorderL | None = None
|
|
2720
|
+
borderR: SprinklePropBorderR | None = None
|
|
2721
|
+
borderT: SprinklePropBorderT | None = None
|
|
2722
|
+
children: ProteusNode | None = None
|
|
2723
|
+
color: SprinklePropColor | None = None
|
|
2724
|
+
cursor: SprinklePropCursor | None = None
|
|
2725
|
+
display: SprinklePropDisplay | None = None
|
|
2726
|
+
flex: SprinklePropFlex | None = None
|
|
2727
|
+
flexDirection: SprinklePropFlexDirection | None = None
|
|
2728
|
+
flexWrap: SprinklePropFlexWrap | None = None
|
|
2729
|
+
fontFamily: SprinklePropFontFamily | None = None
|
|
2730
|
+
fontSize: SprinklePropFontSize | None = None
|
|
2731
|
+
fontWeight: SprinklePropFontWeight | None = None
|
|
2732
|
+
gap: SprinklePropGap | None = None
|
|
2733
|
+
gridColumn: SprinklePropGridColumn | None = None
|
|
2734
|
+
gridTemplateColumns: SprinklePropGridTemplateColumns | None = None
|
|
2735
|
+
h: SprinklePropH | None = None
|
|
2736
|
+
justifyContent: SprinklePropJustifyContent | None = None
|
|
2737
|
+
justifyItems: SprinklePropJustifyItems | None = None
|
|
2738
|
+
m: SprinklePropM | None = None
|
|
2739
|
+
maxH: SprinklePropMaxH | None = None
|
|
2740
|
+
maxW: SprinklePropMaxW | None = None
|
|
2741
|
+
mb: SprinklePropMb | None = None
|
|
2742
|
+
ml: SprinklePropMl | None = None
|
|
2743
|
+
mr: SprinklePropMr | None = None
|
|
2744
|
+
mt: SprinklePropMt | None = None
|
|
2745
|
+
mx: SprinklePropMx | None = None
|
|
2746
|
+
my: SprinklePropMy | None = None
|
|
2747
|
+
objectFit: SprinklePropObjectFit | None = None
|
|
2748
|
+
overflow: SprinklePropOverflow | None = None
|
|
2749
|
+
overflowX: SprinklePropOverflowX | None = None
|
|
2750
|
+
overflowY: SprinklePropOverflowY | None = None
|
|
2751
|
+
p: SprinklePropP | None = None
|
|
2752
|
+
pb: SprinklePropPb | None = None
|
|
2753
|
+
pl: SprinklePropPl | None = None
|
|
2754
|
+
placeItems: SprinklePropPlaceItems | None = None
|
|
2755
|
+
pointerEvents: SprinklePropPointerEvents | None = None
|
|
2756
|
+
pr: SprinklePropPr | None = None
|
|
2757
|
+
pt: SprinklePropPt | None = None
|
|
2758
|
+
px: SprinklePropPx | None = None
|
|
2759
|
+
py: SprinklePropPy | None = None
|
|
2760
|
+
rounded: SprinklePropRounded | None = None
|
|
2761
|
+
shadow: SprinklePropShadow | None = None
|
|
2762
|
+
size: SprinklePropSize | None = None
|
|
2763
|
+
textAlign: SprinklePropTextAlign | None = None
|
|
2764
|
+
textTransform: SprinklePropTextTransform | None = None
|
|
2765
|
+
transition: SprinklePropTransition | None = None
|
|
2766
|
+
w: SprinklePropW | None = None
|
|
2767
|
+
whiteSpace: SprinklePropWhiteSpace | None = None
|
|
2768
|
+
z: SprinklePropZ | None = None
|
|
2769
|
+
|
|
2770
|
+
|
|
2771
|
+
class ProteusCardHeader(BaseModel):
|
|
2772
|
+
model_config = ConfigDict(
|
|
2773
|
+
extra='forbid',
|
|
2774
|
+
)
|
|
2775
|
+
field_type: Literal['CardHeader'] = Field(default='CardHeader', alias='$type')
|
|
2776
|
+
addonAfter: ProteusNode | None = Field(
|
|
2777
|
+
default=None, description='Display content inside the header after `children`.'
|
|
2778
|
+
)
|
|
2779
|
+
addonBefore: ProteusNode | None = Field(
|
|
2780
|
+
default=None, description='Display content inside the header before `children`.'
|
|
2781
|
+
)
|
|
2782
|
+
alignItems: SprinklePropAlignItems | None = None
|
|
2783
|
+
alignSelf: SprinklePropAlignSelf | None = None
|
|
2784
|
+
animation: SprinklePropAnimation | None = None
|
|
2785
|
+
backgroundImage: SprinklePropBackgroundImage | None = None
|
|
2786
|
+
bg: SprinklePropBg | None = None
|
|
2787
|
+
border: SprinklePropBorder | None = None
|
|
2788
|
+
borderB: SprinklePropBorderB | None = None
|
|
2789
|
+
borderColor: SprinklePropBorderColor | None = None
|
|
2790
|
+
borderL: SprinklePropBorderL | None = None
|
|
2791
|
+
borderR: SprinklePropBorderR | None = None
|
|
2792
|
+
borderT: SprinklePropBorderT | None = None
|
|
2793
|
+
children: ProteusNode | None = None
|
|
2794
|
+
color: SprinklePropColor | None = None
|
|
2795
|
+
cursor: SprinklePropCursor | None = None
|
|
2796
|
+
description: ProteusNode | None = Field(
|
|
2797
|
+
default=None, description='Add secondary text after the primary title.'
|
|
2798
|
+
)
|
|
2799
|
+
display: SprinklePropDisplay | None = None
|
|
2800
|
+
flex: SprinklePropFlex | None = None
|
|
2801
|
+
flexDirection: SprinklePropFlexDirection | None = None
|
|
2802
|
+
flexWrap: SprinklePropFlexWrap | None = None
|
|
2803
|
+
fontFamily: SprinklePropFontFamily | None = None
|
|
2804
|
+
fontSize: SprinklePropFontSize | None = None
|
|
2805
|
+
fontWeight: SprinklePropFontWeight | None = None
|
|
2806
|
+
gap: SprinklePropGap | None = None
|
|
2807
|
+
gridColumn: SprinklePropGridColumn | None = None
|
|
2808
|
+
gridTemplateColumns: SprinklePropGridTemplateColumns | None = None
|
|
2809
|
+
h: SprinklePropH | None = None
|
|
2810
|
+
justifyContent: SprinklePropJustifyContent | None = None
|
|
2811
|
+
justifyItems: SprinklePropJustifyItems | None = None
|
|
2812
|
+
m: SprinklePropM | None = None
|
|
2813
|
+
maxH: SprinklePropMaxH | None = None
|
|
2814
|
+
maxW: SprinklePropMaxW | None = None
|
|
2815
|
+
mb: SprinklePropMb | None = None
|
|
2816
|
+
ml: SprinklePropMl | None = None
|
|
2817
|
+
mr: SprinklePropMr | None = None
|
|
2818
|
+
mt: SprinklePropMt | None = None
|
|
2819
|
+
mx: SprinklePropMx | None = None
|
|
2820
|
+
my: SprinklePropMy | None = None
|
|
2821
|
+
objectFit: SprinklePropObjectFit | None = None
|
|
2822
|
+
overflow: SprinklePropOverflow | None = None
|
|
2823
|
+
overflowX: SprinklePropOverflowX | None = None
|
|
2824
|
+
overflowY: SprinklePropOverflowY | None = None
|
|
2825
|
+
p: SprinklePropP | None = None
|
|
2826
|
+
pb: SprinklePropPb | None = None
|
|
2827
|
+
pl: SprinklePropPl | None = None
|
|
2828
|
+
placeItems: SprinklePropPlaceItems | None = None
|
|
2829
|
+
pointerEvents: SprinklePropPointerEvents | None = None
|
|
2830
|
+
pr: SprinklePropPr | None = None
|
|
2831
|
+
pt: SprinklePropPt | None = None
|
|
2832
|
+
px: SprinklePropPx | None = None
|
|
2833
|
+
py: SprinklePropPy | None = None
|
|
2834
|
+
rounded: SprinklePropRounded | None = None
|
|
2835
|
+
shadow: SprinklePropShadow | None = None
|
|
2836
|
+
size: SprinklePropSize | None = None
|
|
2837
|
+
textAlign: SprinklePropTextAlign | None = None
|
|
2838
|
+
textTransform: SprinklePropTextTransform | None = None
|
|
2839
|
+
transition: SprinklePropTransition | None = None
|
|
2840
|
+
w: SprinklePropW | None = None
|
|
2841
|
+
whiteSpace: SprinklePropWhiteSpace | None = None
|
|
2842
|
+
z: SprinklePropZ | None = None
|
|
2843
|
+
|
|
2844
|
+
|
|
2845
|
+
class ProteusCardLink(BaseModel):
|
|
2846
|
+
model_config = ConfigDict(
|
|
2847
|
+
extra='forbid',
|
|
2848
|
+
)
|
|
2849
|
+
field_type: Literal['CardLink'] = Field(default='CardLink', alias='$type')
|
|
2850
|
+
alignItems: SprinklePropAlignItems | None = None
|
|
2851
|
+
alignSelf: SprinklePropAlignSelf | None = None
|
|
2852
|
+
animation: SprinklePropAnimation | None = None
|
|
2853
|
+
backgroundImage: SprinklePropBackgroundImage | None = None
|
|
2854
|
+
bg: SprinklePropBg | None = None
|
|
2855
|
+
border: SprinklePropBorder | None = None
|
|
2856
|
+
borderB: SprinklePropBorderB | None = None
|
|
2857
|
+
borderColor: SprinklePropBorderColor | None = None
|
|
2858
|
+
borderL: SprinklePropBorderL | None = None
|
|
2859
|
+
borderR: SprinklePropBorderR | None = None
|
|
2860
|
+
borderT: SprinklePropBorderT | None = None
|
|
2861
|
+
children: ProteusNode | None = None
|
|
2862
|
+
color: SprinklePropColor | None = None
|
|
2863
|
+
cursor: SprinklePropCursor | None = None
|
|
2864
|
+
display: SprinklePropDisplay | None = None
|
|
2865
|
+
flex: SprinklePropFlex | None = None
|
|
2866
|
+
flexDirection: SprinklePropFlexDirection | None = None
|
|
2867
|
+
flexWrap: SprinklePropFlexWrap | None = None
|
|
2868
|
+
fontFamily: SprinklePropFontFamily | None = None
|
|
2869
|
+
fontSize: SprinklePropFontSize | None = None
|
|
2870
|
+
fontWeight: SprinklePropFontWeight | None = None
|
|
2871
|
+
gap: SprinklePropGap | None = None
|
|
2872
|
+
gridColumn: SprinklePropGridColumn | None = None
|
|
2873
|
+
gridTemplateColumns: SprinklePropGridTemplateColumns | None = None
|
|
2874
|
+
h: SprinklePropH | None = None
|
|
2875
|
+
href: str | ProteusValue | None = Field(default=None, description='The link href.')
|
|
2876
|
+
justifyContent: SprinklePropJustifyContent | None = None
|
|
2877
|
+
justifyItems: SprinklePropJustifyItems | None = None
|
|
2878
|
+
m: SprinklePropM | None = None
|
|
2879
|
+
maxH: SprinklePropMaxH | None = None
|
|
2880
|
+
maxW: SprinklePropMaxW | None = None
|
|
2881
|
+
mb: SprinklePropMb | None = None
|
|
2882
|
+
ml: SprinklePropMl | None = None
|
|
2883
|
+
mr: SprinklePropMr | None = None
|
|
2884
|
+
mt: SprinklePropMt | None = None
|
|
2885
|
+
mx: SprinklePropMx | None = None
|
|
2886
|
+
my: SprinklePropMy | None = None
|
|
2887
|
+
objectFit: SprinklePropObjectFit | None = None
|
|
2888
|
+
overflow: SprinklePropOverflow | None = None
|
|
2889
|
+
overflowX: SprinklePropOverflowX | None = None
|
|
2890
|
+
overflowY: SprinklePropOverflowY | None = None
|
|
2891
|
+
p: SprinklePropP | None = None
|
|
2892
|
+
pb: SprinklePropPb | None = None
|
|
2893
|
+
pl: SprinklePropPl | None = None
|
|
2894
|
+
placeItems: SprinklePropPlaceItems | None = None
|
|
2895
|
+
pointerEvents: SprinklePropPointerEvents | None = None
|
|
2896
|
+
pr: SprinklePropPr | None = None
|
|
2897
|
+
pt: SprinklePropPt | None = None
|
|
2898
|
+
px: SprinklePropPx | None = None
|
|
2899
|
+
py: SprinklePropPy | None = None
|
|
2900
|
+
rounded: SprinklePropRounded | None = None
|
|
2901
|
+
shadow: SprinklePropShadow | None = None
|
|
2902
|
+
size: SprinklePropSize | None = None
|
|
2903
|
+
textAlign: SprinklePropTextAlign | None = None
|
|
2904
|
+
textTransform: SprinklePropTextTransform | None = None
|
|
2905
|
+
transition: SprinklePropTransition | None = None
|
|
2906
|
+
w: SprinklePropW | None = None
|
|
2907
|
+
whiteSpace: SprinklePropWhiteSpace | None = None
|
|
2908
|
+
z: SprinklePropZ | None = None
|
|
2909
|
+
|
|
2910
|
+
|
|
2911
|
+
class ProteusChoice(BaseModel):
|
|
2912
|
+
model_config = ConfigDict(
|
|
2913
|
+
extra='forbid',
|
|
2914
|
+
)
|
|
2915
|
+
field_type: Literal['Choice'] = Field(default='Choice', alias='$type')
|
|
2916
|
+
addonBefore: ProteusNode | None = Field(
|
|
2917
|
+
default=None, description='Content to display before the choice text (e.g., numbered badge)'
|
|
2918
|
+
)
|
|
2919
|
+
children: ProteusNode | None = Field(default=None, description='Title/label of the choice')
|
|
2920
|
+
description: ProteusNode | None = Field(
|
|
2921
|
+
default=None, description='Secondary description text shown below the title'
|
|
2922
|
+
)
|
|
2923
|
+
onClick: ProteusEventHandler | None = Field(
|
|
2924
|
+
default=None, description='Action triggered when choice is selected'
|
|
2925
|
+
)
|
|
2926
|
+
required: bool | None = Field(
|
|
2927
|
+
default=None, description='Whether selecting this choice is required to proceed'
|
|
2928
|
+
)
|
|
2929
|
+
value: str | None = Field(default=None, description='Value associated with this choice')
|
|
2930
|
+
|
|
2931
|
+
|
|
2932
|
+
class ProteusChoiceGroup(BaseModel):
|
|
2933
|
+
model_config = ConfigDict(
|
|
2934
|
+
extra='forbid',
|
|
2935
|
+
)
|
|
2936
|
+
field_type: Literal['ChoiceGroup'] = Field(default='ChoiceGroup', alias='$type')
|
|
2937
|
+
children: ProteusNode | None = Field(default=None, description='Choice elements to render')
|
|
2938
|
+
name: str | None = Field(default=None, description='Data field name for the selected value')
|
|
2939
|
+
|
|
2940
|
+
|
|
2537
2941
|
class ProteusField(BaseModel):
|
|
2538
2942
|
model_config = ConfigDict(
|
|
2539
2943
|
extra='forbid',
|
|
@@ -2832,6 +3236,9 @@ class ProteusInput(BaseModel):
|
|
|
2832
3236
|
pt: SprinklePropPt | None = None
|
|
2833
3237
|
px: SprinklePropPx | None = None
|
|
2834
3238
|
py: SprinklePropPy | None = None
|
|
3239
|
+
required: bool | ProteusValue | None = Field(
|
|
3240
|
+
default=None, description='Whether selecting this input is required.'
|
|
3241
|
+
)
|
|
2835
3242
|
rounded: SprinklePropRounded | None = None
|
|
2836
3243
|
shadow: SprinklePropShadow | None = None
|
|
2837
3244
|
textAlign: SprinklePropTextAlign | None = None
|
|
@@ -2947,6 +3354,10 @@ class ProteusMap(BaseModel):
|
|
|
2947
3354
|
path: str = Field(
|
|
2948
3355
|
..., description="JSON pointer path to the source array in the data (e.g., '/results')"
|
|
2949
3356
|
)
|
|
3357
|
+
separator: ProteusNode | None = Field(
|
|
3358
|
+
default=None,
|
|
3359
|
+
description='Optional separator to render between items. Can be a string or a ProteusNode for more complex separators.',
|
|
3360
|
+
)
|
|
2950
3361
|
|
|
2951
3362
|
|
|
2952
3363
|
class ProteusSelect(BaseModel):
|
|
@@ -2959,6 +3370,9 @@ class ProteusSelect(BaseModel):
|
|
|
2959
3370
|
default=None, description='The name of the inner select element.'
|
|
2960
3371
|
)
|
|
2961
3372
|
options: list[Option] = Field(..., description='The select items/options we want to render.')
|
|
3373
|
+
required: bool | ProteusValue | None = Field(
|
|
3374
|
+
default=None, description='Whether the select value is required.'
|
|
3375
|
+
)
|
|
2962
3376
|
|
|
2963
3377
|
|
|
2964
3378
|
class ProteusSelectTrigger(BaseModel):
|
|
@@ -3110,16 +3524,52 @@ class ProteusText(BaseModel):
|
|
|
3110
3524
|
z: SprinklePropZ | None = None
|
|
3111
3525
|
|
|
3112
3526
|
|
|
3527
|
+
class ProteusCondition(
|
|
3528
|
+
RootModel[
|
|
3529
|
+
ProteusCondition1
|
|
3530
|
+
| ProteusCondition2
|
|
3531
|
+
| ProteusCondition3
|
|
3532
|
+
| ProteusCondition4
|
|
3533
|
+
| ProteusCondition5
|
|
3534
|
+
| ProteusCondition6
|
|
3535
|
+
| ProteusCondition7
|
|
3536
|
+
| ProteusCondition8
|
|
3537
|
+
| ProteusCondition9
|
|
3538
|
+
]
|
|
3539
|
+
):
|
|
3540
|
+
root: (
|
|
3541
|
+
ProteusCondition1
|
|
3542
|
+
| ProteusCondition2
|
|
3543
|
+
| ProteusCondition3
|
|
3544
|
+
| ProteusCondition4
|
|
3545
|
+
| ProteusCondition5
|
|
3546
|
+
| ProteusCondition6
|
|
3547
|
+
| ProteusCondition7
|
|
3548
|
+
| ProteusCondition8
|
|
3549
|
+
| ProteusCondition9
|
|
3550
|
+
) = Field(
|
|
3551
|
+
...,
|
|
3552
|
+
description='Condition for Show component. Can be a comparison operator, logical AND, or logical OR. Supports nesting.',
|
|
3553
|
+
)
|
|
3554
|
+
|
|
3555
|
+
|
|
3113
3556
|
class ProteusElement(
|
|
3114
3557
|
RootModel[
|
|
3115
3558
|
ProteusAction
|
|
3559
|
+
| ProteusAvatar
|
|
3116
3560
|
| ProteusBadge
|
|
3117
3561
|
| ProteusCancelAction
|
|
3562
|
+
| ProteusCard
|
|
3563
|
+
| ProteusCardHeader
|
|
3564
|
+
| ProteusCardLink
|
|
3118
3565
|
| ProteusChart
|
|
3566
|
+
| ProteusChoice
|
|
3567
|
+
| ProteusChoiceGroup
|
|
3119
3568
|
| ProteusDataTable
|
|
3120
3569
|
| ProteusField
|
|
3121
3570
|
| ProteusGroup
|
|
3122
3571
|
| ProteusHeading
|
|
3572
|
+
| ProteusIconCalendar
|
|
3123
3573
|
| ProteusImage
|
|
3124
3574
|
| ProteusInput
|
|
3125
3575
|
| ProteusLink
|
|
@@ -3138,13 +3588,20 @@ class ProteusElement(
|
|
|
3138
3588
|
):
|
|
3139
3589
|
root: (
|
|
3140
3590
|
ProteusAction
|
|
3591
|
+
| ProteusAvatar
|
|
3141
3592
|
| ProteusBadge
|
|
3142
3593
|
| ProteusCancelAction
|
|
3594
|
+
| ProteusCard
|
|
3595
|
+
| ProteusCardHeader
|
|
3596
|
+
| ProteusCardLink
|
|
3143
3597
|
| ProteusChart
|
|
3598
|
+
| ProteusChoice
|
|
3599
|
+
| ProteusChoiceGroup
|
|
3144
3600
|
| ProteusDataTable
|
|
3145
3601
|
| ProteusField
|
|
3146
3602
|
| ProteusGroup
|
|
3147
3603
|
| ProteusHeading
|
|
3604
|
+
| ProteusIconCalendar
|
|
3148
3605
|
| ProteusImage
|
|
3149
3606
|
| ProteusInput
|
|
3150
3607
|
| ProteusLink
|
|
@@ -3188,10 +3645,18 @@ class ProteusNode(
|
|
|
3188
3645
|
)
|
|
3189
3646
|
|
|
3190
3647
|
|
|
3648
|
+
ProteusCondition8.model_rebuild()
|
|
3649
|
+
ProteusCondition9.model_rebuild()
|
|
3191
3650
|
ProteusDocument.model_rebuild()
|
|
3192
3651
|
ProteusAction.model_rebuild()
|
|
3652
|
+
ProteusAvatar.model_rebuild()
|
|
3193
3653
|
ProteusBadge.model_rebuild()
|
|
3194
3654
|
ProteusCancelAction.model_rebuild()
|
|
3655
|
+
ProteusCard.model_rebuild()
|
|
3656
|
+
ProteusCardHeader.model_rebuild()
|
|
3657
|
+
ProteusCardLink.model_rebuild()
|
|
3658
|
+
ProteusChoice.model_rebuild()
|
|
3659
|
+
ProteusChoiceGroup.model_rebuild()
|
|
3195
3660
|
ProteusField.model_rebuild()
|
|
3196
3661
|
ProteusGroup.model_rebuild()
|
|
3197
3662
|
ProteusHeading.model_rebuild()
|
|
@@ -3217,14 +3682,21 @@ class UI:
|
|
|
3217
3682
|
MIME_TYPE = "application/vnd.opal.proteus+json"
|
|
3218
3683
|
|
|
3219
3684
|
Action = ProteusAction
|
|
3685
|
+
Avatar = ProteusAvatar
|
|
3220
3686
|
Badge = ProteusBadge
|
|
3221
3687
|
CancelAction = ProteusCancelAction
|
|
3688
|
+
Card = ProteusCard
|
|
3689
|
+
CardHeader = ProteusCardHeader
|
|
3690
|
+
CardLink = ProteusCardLink
|
|
3222
3691
|
Chart = ProteusChart
|
|
3692
|
+
Choice = ProteusChoice
|
|
3693
|
+
ChoiceGroup = ProteusChoiceGroup
|
|
3223
3694
|
DataTable = ProteusDataTable
|
|
3224
3695
|
Document = ProteusDocument
|
|
3225
3696
|
Field = ProteusField
|
|
3226
3697
|
Group = ProteusGroup
|
|
3227
3698
|
Heading = ProteusHeading
|
|
3699
|
+
IconCalendar = ProteusIconCalendar
|
|
3228
3700
|
Image = ProteusImage
|
|
3229
3701
|
Input = ProteusInput
|
|
3230
3702
|
Link = ProteusLink
|
|
@@ -3239,3 +3711,4 @@ class UI:
|
|
|
3239
3711
|
Textarea = ProteusTextarea
|
|
3240
3712
|
Time = ProteusTime
|
|
3241
3713
|
Value = ProteusValue
|
|
3714
|
+
Zip = ProteusZip
|
|
@@ -227,6 +227,8 @@ class ToolsService:
|
|
|
227
227
|
except ValidationError as e:
|
|
228
228
|
logger.warning(f"Invalid parameters predicted by LLM for tool {name}: {str(e)}")
|
|
229
229
|
raise HTTPException(status_code=400, detail=str(e))
|
|
230
|
+
except HTTPException:
|
|
231
|
+
raise
|
|
230
232
|
except Exception as e:
|
|
231
233
|
import traceback
|
|
232
234
|
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "optimizely-opal.opal-tools-sdk"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.18-dev"
|
|
8
8
|
description = "SDK for creating Opal-compatible tools services"
|
|
9
9
|
authors = [{ name = "Optimizely", email = "opal-team@optimizely.com" }]
|
|
10
10
|
readme = "README.md"
|
{optimizely_opal_opal_tools_sdk-0.1.16.dev0 → optimizely_opal_opal_tools_sdk-0.1.18.dev0}/README.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{optimizely_opal_opal_tools_sdk-0.1.16.dev0 → optimizely_opal_opal_tools_sdk-0.1.18.dev0}/setup.cfg
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|