@axiom-lattice/protocols 2.1.13 → 2.1.15

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/index.d.ts CHANGED
@@ -122,7 +122,8 @@ interface ModelLatticeProtocol extends BaseLatticeProtocol<LLMConfig, BaseChatMo
122
122
  */
123
123
  declare enum AgentType {
124
124
  REACT = "react",
125
- DEEP_AGENT = "deep_agent"
125
+ DEEP_AGENT = "deep_agent",
126
+ TEAM = "team"
126
127
  }
127
128
  /**
128
129
  * Runtime configuration that will be injected into LangGraphRunnableConfig.configurable
@@ -173,17 +174,22 @@ interface BrowserMiddlewareConfig {
173
174
  headless: boolean;
174
175
  }
175
176
  interface SqlMiddlewareConfig {
176
- databaseKey?: string;
177
- connectionString?: string;
177
+ databaseKeys?: string[];
178
+ }
179
+ interface MetricsMiddlewareConfig {
180
+ /** List of configured metrics server keys */
181
+ serverKeys: string[];
182
+ /** Optional descriptions for each server */
183
+ serverDescriptions?: Record<string, string>;
178
184
  }
179
- type MiddlewareType = "filesystem" | "code_eval" | "browser" | "sql" | "skill" | "http" | "custom";
185
+ type MiddlewareType = "filesystem" | "code_eval" | "browser" | "sql" | "skill" | "http" | "custom" | "metrics";
180
186
  interface AgentMiddlewareConfig {
181
187
  id: string;
182
188
  type: MiddlewareType;
183
189
  name: string;
184
190
  description: string;
185
191
  enabled: boolean;
186
- config: SandboxMiddlewareConfig | CodeEvalMiddlewareConfig | BrowserMiddlewareConfig | SqlMiddlewareConfig | Record<string, any>;
192
+ config: SandboxMiddlewareConfig | CodeEvalMiddlewareConfig | BrowserMiddlewareConfig | SqlMiddlewareConfig | MetricsMiddlewareConfig | Record<string, any>;
187
193
  }
188
194
  /**
189
195
  * REACT agent configuration
@@ -201,15 +207,54 @@ interface DeepAgentConfig extends BaseAgentConfig {
201
207
  subAgents?: string[];
202
208
  internalSubAgents?: AgentConfig[];
203
209
  }
210
+ /**
211
+ * Team teammate configuration -- describes an available teammate.
212
+ */
213
+ interface TeamTeammateConfig {
214
+ /** Unique name for this teammate (used as agent ID) */
215
+ name: string;
216
+ /** Role category (e.g. "research", "writing", "review") */
217
+ role: string;
218
+ /** Human-readable description of what this teammate does */
219
+ description: string;
220
+ /** Tool keys this teammate has access to */
221
+ tools?: string[];
222
+ /** Custom system prompt for this teammate */
223
+ prompt?: string;
224
+ /** Model key override for this teammate */
225
+ modelKey?: string;
226
+ }
227
+ /**
228
+ * TEAM agent configuration -- a team lead that dynamically creates teammates.
229
+ * Teammates are created on-the-fly from create_team tool input (name, role, description).
230
+ */
231
+ interface TeamAgentConfig extends BaseAgentConfig {
232
+ type: AgentType.TEAM;
233
+ /** Tool keys available to the team lead */
234
+ tools?: string[];
235
+ /** Maximum number of teammates running concurrently */
236
+ maxConcurrency?: number;
237
+ /**
238
+ * Schedule lattice key for polling task list / mailbox.
239
+ * When set, teammates use ScheduleLattice for periodic polling instead of event-driven wait.
240
+ */
241
+ scheduleLatticeKey?: string;
242
+ /** Poll interval in ms when using schedule lattice (default: 5000) */
243
+ pollIntervalMs?: number;
244
+ }
245
+ /**
246
+ * Type guard to check if config is TeamAgentConfig
247
+ */
248
+ declare function isTeamAgentConfig(config: AgentConfig): config is TeamAgentConfig;
204
249
  /**
205
250
  * Agent configuration union type
206
251
  * Different agent types have different configuration options
207
252
  */
208
- type AgentConfig = ReactAgentConfig | DeepAgentConfig;
253
+ type AgentConfig = ReactAgentConfig | DeepAgentConfig | TeamAgentConfig;
209
254
  /**
210
255
  * Agent configuration with tools property
211
256
  */
212
- type AgentConfigWithTools = ReactAgentConfig | DeepAgentConfig;
257
+ type AgentConfigWithTools = ReactAgentConfig | DeepAgentConfig | TeamAgentConfig;
213
258
  /**
214
259
  * Type guard to check if config has tools property
215
260
  */
@@ -1258,6 +1303,19 @@ interface SkillStore {
1258
1303
  * @returns Array of sub-skills if found, empty array otherwise
1259
1304
  */
1260
1305
  getSubSkills(parentSkillName: string): Promise<Skill[]>;
1306
+ /**
1307
+ * List all resources in a skill's resources directory
1308
+ * @param id Skill identifier
1309
+ * @returns Array of resource paths relative to resources/ directory
1310
+ */
1311
+ listSkillResources?(id: string): Promise<string[]>;
1312
+ /**
1313
+ * Load a specific resource from a skill's resources directory
1314
+ * @param id Skill identifier
1315
+ * @param resourcePath Path to the resource relative to resources/ directory
1316
+ * @returns The resource content as string, or null if not found
1317
+ */
1318
+ loadSkillResource?(id: string, resourcePath: string): Promise<string | null>;
1261
1319
  }
1262
1320
 
1263
1321
  /**
@@ -1536,6 +1594,737 @@ interface McpStats {
1536
1594
  lastCallTimestamp: number;
1537
1595
  }
1538
1596
 
1597
+ /**
1598
+ * WorkspaceStoreProtocol
1599
+ *
1600
+ * Workspace and Project store protocol definitions
1601
+ * for the Axiom Lattice framework
1602
+ */
1603
+ type StorageType = "sandbox" | "filesystem";
1604
+ /**
1605
+ * Workspace type definition
1606
+ */
1607
+ interface Workspace {
1608
+ id: string;
1609
+ tenantId: string;
1610
+ name: string;
1611
+ description?: string;
1612
+ storageType: StorageType;
1613
+ createdAt: Date;
1614
+ updatedAt: Date;
1615
+ }
1616
+ /**
1617
+ * Create workspace request type
1618
+ */
1619
+ interface CreateWorkspaceRequest {
1620
+ name: string;
1621
+ description?: string;
1622
+ storageType: StorageType;
1623
+ }
1624
+ /**
1625
+ * Update workspace request type
1626
+ */
1627
+ interface UpdateWorkspaceRequest {
1628
+ name?: string;
1629
+ description?: string;
1630
+ storageType?: StorageType;
1631
+ }
1632
+ /**
1633
+ * WorkspaceStore interface
1634
+ * Provides CRUD operations for workspace data
1635
+ */
1636
+ interface WorkspaceStore {
1637
+ getAllWorkspaces(tenantId: string): Promise<Workspace[]>;
1638
+ getWorkspaceById(tenantId: string, id: string): Promise<Workspace | null>;
1639
+ createWorkspace(tenantId: string, id: string, data: CreateWorkspaceRequest): Promise<Workspace>;
1640
+ updateWorkspace(tenantId: string, id: string, updates: UpdateWorkspaceRequest): Promise<Workspace | null>;
1641
+ deleteWorkspace(tenantId: string, id: string): Promise<boolean>;
1642
+ }
1643
+ /**
1644
+ * Project type definition
1645
+ */
1646
+ interface Project {
1647
+ id: string;
1648
+ tenantId: string;
1649
+ workspaceId: string;
1650
+ name: string;
1651
+ description?: string;
1652
+ createdAt: Date;
1653
+ updatedAt: Date;
1654
+ }
1655
+ /**
1656
+ * Create project request type
1657
+ */
1658
+ interface CreateProjectRequest {
1659
+ name: string;
1660
+ description?: string;
1661
+ }
1662
+ /**
1663
+ * Update project request type
1664
+ */
1665
+ interface UpdateProjectRequest {
1666
+ name?: string;
1667
+ description?: string;
1668
+ }
1669
+ /**
1670
+ * ProjectStore interface
1671
+ * Provides CRUD operations for project data
1672
+ */
1673
+ interface ProjectStore {
1674
+ getProjectsByWorkspace(tenantId: string, workspaceId: string): Promise<Project[]>;
1675
+ getProjectById(tenantId: string, id: string): Promise<Project | null>;
1676
+ createProject(tenantId: string, workspaceId: string, id: string, data: CreateProjectRequest): Promise<Project>;
1677
+ updateProject(tenantId: string, id: string, updates: UpdateProjectRequest): Promise<Project | null>;
1678
+ deleteProject(tenantId: string, id: string): Promise<boolean>;
1679
+ }
1680
+
1681
+ /**
1682
+ * TenantStoreProtocol
1683
+ *
1684
+ * Tenant store protocol definitions
1685
+ * for the Axiom Lattice framework
1686
+ */
1687
+ type TenantStatus = 'active' | 'inactive' | 'suspended';
1688
+ /**
1689
+ * Tenant type definition
1690
+ */
1691
+ interface Tenant {
1692
+ id: string;
1693
+ name: string;
1694
+ description?: string;
1695
+ status: TenantStatus;
1696
+ metadata?: Record<string, any>;
1697
+ createdAt: Date;
1698
+ updatedAt: Date;
1699
+ }
1700
+ /**
1701
+ * Create tenant request type
1702
+ */
1703
+ interface CreateTenantRequest {
1704
+ name: string;
1705
+ description?: string;
1706
+ status?: TenantStatus;
1707
+ metadata?: Record<string, any>;
1708
+ }
1709
+ /**
1710
+ * Update tenant request type
1711
+ */
1712
+ interface UpdateTenantRequest {
1713
+ name?: string;
1714
+ description?: string;
1715
+ status?: TenantStatus;
1716
+ metadata?: Record<string, any>;
1717
+ }
1718
+ /**
1719
+ * TenantStore interface
1720
+ * Provides CRUD operations for tenant data
1721
+ * Note: Tenant is a top-level entity, so no tenantId parameter is needed
1722
+ */
1723
+ interface TenantStore {
1724
+ getAllTenants(): Promise<Tenant[]>;
1725
+ getTenantById(id: string): Promise<Tenant | null>;
1726
+ createTenant(id: string, data: CreateTenantRequest): Promise<Tenant>;
1727
+ updateTenant(id: string, updates: UpdateTenantRequest): Promise<Tenant | null>;
1728
+ deleteTenant(id: string): Promise<boolean>;
1729
+ }
1730
+
1731
+ /**
1732
+ * DatabaseConfigStoreProtocol
1733
+ *
1734
+ * Database configuration store protocol for the Axiom Lattice framework
1735
+ * Provides standardized interfaces for database connection config management
1736
+ */
1737
+ /**
1738
+ * Supported database types
1739
+ */
1740
+ type DatabaseType = 'postgres' | 'mysql' | 'sqlite';
1741
+ /**
1742
+ * Database connection configuration
1743
+ */
1744
+ interface DatabaseConfig {
1745
+ type: DatabaseType;
1746
+ host?: string;
1747
+ port?: number;
1748
+ database: string;
1749
+ user?: string;
1750
+ password?: string;
1751
+ connectionString?: string;
1752
+ ssl?: boolean;
1753
+ }
1754
+ /**
1755
+ * Database configuration entry stored in the store
1756
+ */
1757
+ interface DatabaseConfigEntry {
1758
+ /**
1759
+ * Unique identifier for the configuration
1760
+ */
1761
+ id: string;
1762
+ /**
1763
+ * Tenant identifier for multi-tenant isolation
1764
+ */
1765
+ tenantId: string;
1766
+ /**
1767
+ * Business key for the configuration (unique within tenant)
1768
+ */
1769
+ key: string;
1770
+ /**
1771
+ * Database connection configuration (password already decrypted)
1772
+ */
1773
+ config: DatabaseConfig;
1774
+ /**
1775
+ * Optional friendly name
1776
+ */
1777
+ name?: string;
1778
+ /**
1779
+ * Optional description
1780
+ */
1781
+ description?: string;
1782
+ /**
1783
+ * Creation timestamp
1784
+ */
1785
+ createdAt: Date;
1786
+ /**
1787
+ * Last update timestamp
1788
+ */
1789
+ updatedAt: Date;
1790
+ }
1791
+ /**
1792
+ * Request to create a new database configuration
1793
+ */
1794
+ interface CreateDatabaseConfigRequest {
1795
+ /**
1796
+ * Business key for the configuration (unique within tenant)
1797
+ */
1798
+ key: string;
1799
+ /**
1800
+ * Database connection configuration
1801
+ */
1802
+ config: DatabaseConfig;
1803
+ /**
1804
+ * Optional friendly name
1805
+ */
1806
+ name?: string;
1807
+ /**
1808
+ * Optional description
1809
+ */
1810
+ description?: string;
1811
+ }
1812
+ /**
1813
+ * Request to update an existing database configuration
1814
+ */
1815
+ interface UpdateDatabaseConfigRequest {
1816
+ /**
1817
+ * Business key for the configuration
1818
+ */
1819
+ key?: string;
1820
+ /**
1821
+ * Database connection configuration
1822
+ */
1823
+ config?: DatabaseConfig;
1824
+ /**
1825
+ * Optional friendly name
1826
+ */
1827
+ name?: string;
1828
+ /**
1829
+ * Optional description
1830
+ */
1831
+ description?: string;
1832
+ }
1833
+ /**
1834
+ * DatabaseConfigStore interface
1835
+ * Provides CRUD operations for database configuration data
1836
+ */
1837
+ interface DatabaseConfigStore {
1838
+ /**
1839
+ * Get all database configurations for a tenant
1840
+ * @param tenantId - Tenant identifier
1841
+ * @returns Array of all database configurations
1842
+ */
1843
+ getAllConfigs(tenantId: string): Promise<DatabaseConfigEntry[]>;
1844
+ /**
1845
+ * Get all database configurations across all tenants
1846
+ * @returns Array of all database configurations
1847
+ */
1848
+ getAllConfigsWithoutTenant(): Promise<DatabaseConfigEntry[]>;
1849
+ /**
1850
+ * Get database configuration by ID
1851
+ * @param tenantId - Tenant identifier
1852
+ * @param id - Configuration identifier
1853
+ * @returns Configuration if found, null otherwise
1854
+ */
1855
+ getConfigById(tenantId: string, id: string): Promise<DatabaseConfigEntry | null>;
1856
+ /**
1857
+ * Get database configuration by business key
1858
+ * @param tenantId - Tenant identifier
1859
+ * @param key - Business key
1860
+ * @returns Configuration if found, null otherwise
1861
+ */
1862
+ getConfigByKey(tenantId: string, key: string): Promise<DatabaseConfigEntry | null>;
1863
+ /**
1864
+ * Create a new database configuration
1865
+ * @param tenantId - Tenant identifier
1866
+ * @param id - Configuration identifier
1867
+ * @param data - Configuration creation data
1868
+ * @returns Created configuration
1869
+ */
1870
+ createConfig(tenantId: string, id: string, data: CreateDatabaseConfigRequest): Promise<DatabaseConfigEntry>;
1871
+ /**
1872
+ * Update an existing database configuration
1873
+ * @param tenantId - Tenant identifier
1874
+ * @param id - Configuration identifier
1875
+ * @param updates - Partial configuration data to update
1876
+ * @returns Updated configuration if found, null otherwise
1877
+ */
1878
+ updateConfig(tenantId: string, id: string, updates: Partial<UpdateDatabaseConfigRequest>): Promise<DatabaseConfigEntry | null>;
1879
+ /**
1880
+ * Delete a database configuration by ID
1881
+ * @param tenantId - Tenant identifier
1882
+ * @param id - Configuration identifier
1883
+ * @returns true if deleted, false otherwise
1884
+ */
1885
+ deleteConfig(tenantId: string, id: string): Promise<boolean>;
1886
+ /**
1887
+ * Check if configuration exists
1888
+ * @param tenantId - Tenant identifier
1889
+ * @param id - Configuration identifier
1890
+ * @returns true if configuration exists, false otherwise
1891
+ */
1892
+ hasConfig(tenantId: string, id: string): Promise<boolean>;
1893
+ }
1894
+
1895
+ /**
1896
+ * MetricsServerConfigStoreProtocol
1897
+ *
1898
+ * Metrics Server configuration store protocol for the Axiom Lattice framework
1899
+ * Provides standardized interfaces for metrics server connection config management
1900
+ */
1901
+ /**
1902
+ * Supported metrics server types
1903
+ */
1904
+ type MetricsServerType = 'prometheus' | 'grafana' | 'custom' | 'semantic';
1905
+ /**
1906
+ * Metrics server connection configuration
1907
+ */
1908
+ interface MetricsServerConfig {
1909
+ /** Server type */
1910
+ type: MetricsServerType;
1911
+ /** Server base URL (e.g., http://localhost:9090) */
1912
+ serverUrl: string;
1913
+ /** Optional API key for authentication */
1914
+ apiKey?: string;
1915
+ /** Optional username for basic auth */
1916
+ username?: string;
1917
+ /** Optional password for basic auth */
1918
+ password?: string;
1919
+ /** Optional additional headers */
1920
+ headers?: Record<string, string>;
1921
+ /** Optional timeout in milliseconds (default: 30000) */
1922
+ timeout?: number;
1923
+ }
1924
+ /**
1925
+ * Metrics server configuration entry stored in the store
1926
+ */
1927
+ interface MetricsServerConfigEntry {
1928
+ /**
1929
+ * Unique identifier for the configuration
1930
+ */
1931
+ id: string;
1932
+ /**
1933
+ * Tenant identifier for multi-tenant isolation
1934
+ */
1935
+ tenantId: string;
1936
+ /**
1937
+ * Business key for the configuration (unique within tenant)
1938
+ */
1939
+ key: string;
1940
+ /**
1941
+ * Metrics server connection configuration
1942
+ */
1943
+ config: MetricsServerConfig;
1944
+ /**
1945
+ * Optional friendly name
1946
+ */
1947
+ name?: string;
1948
+ /**
1949
+ * Optional description
1950
+ */
1951
+ description?: string;
1952
+ /**
1953
+ * Creation timestamp
1954
+ */
1955
+ createdAt: Date;
1956
+ /**
1957
+ * Last update timestamp
1958
+ */
1959
+ updatedAt: Date;
1960
+ }
1961
+ /**
1962
+ * Request to create a new metrics server configuration
1963
+ */
1964
+ interface CreateMetricsServerConfigRequest {
1965
+ /**
1966
+ * Business key for the configuration (unique within tenant)
1967
+ */
1968
+ key: string;
1969
+ /**
1970
+ * Metrics server connection configuration
1971
+ */
1972
+ config: MetricsServerConfig;
1973
+ /**
1974
+ * Optional friendly name
1975
+ */
1976
+ name?: string;
1977
+ /**
1978
+ * Optional description
1979
+ */
1980
+ description?: string;
1981
+ }
1982
+ /**
1983
+ * Request to update an existing metrics server configuration
1984
+ */
1985
+ interface UpdateMetricsServerConfigRequest {
1986
+ /**
1987
+ * Business key for the configuration
1988
+ */
1989
+ key?: string;
1990
+ /**
1991
+ * Metrics server connection configuration
1992
+ */
1993
+ config?: MetricsServerConfig;
1994
+ /**
1995
+ * Optional friendly name
1996
+ */
1997
+ name?: string;
1998
+ /**
1999
+ * Optional description
2000
+ */
2001
+ description?: string;
2002
+ }
2003
+ /**
2004
+ * Metric metadata information
2005
+ */
2006
+ interface MetricMeta {
2007
+ /** Metric name */
2008
+ name: string;
2009
+ /** Metric type (gauge, counter, histogram, summary) */
2010
+ type?: string;
2011
+ /** Metric description/help text */
2012
+ description?: string;
2013
+ /** Available label names */
2014
+ labels?: string[];
2015
+ /** Unit of measurement */
2016
+ unit?: string;
2017
+ }
2018
+ /**
2019
+ * Metric data point
2020
+ */
2021
+ interface MetricDataPoint {
2022
+ /** Timestamp */
2023
+ timestamp: number;
2024
+ /** Metric value */
2025
+ value: number;
2026
+ /** Label values */
2027
+ labels?: Record<string, string>;
2028
+ }
2029
+ /**
2030
+ * Metric query result
2031
+ */
2032
+ interface MetricQueryResult {
2033
+ /** Metric name */
2034
+ metricName: string;
2035
+ /** Data points */
2036
+ dataPoints: MetricDataPoint[];
2037
+ /** Query metadata */
2038
+ metadata?: {
2039
+ startTime?: number;
2040
+ endTime?: number;
2041
+ step?: number;
2042
+ };
2043
+ }
2044
+ /**
2045
+ * Data source information for semantic metrics server
2046
+ */
2047
+ interface DataSource {
2048
+ /** Unique identifier for the data source */
2049
+ id: string | number;
2050
+ /** Display name of the data source */
2051
+ name: string;
2052
+ /** JDBC connection URL or similar */
2053
+ url: string;
2054
+ /** Username for connection */
2055
+ username?: string;
2056
+ /** Schema name in the database */
2057
+ schemaName?: string;
2058
+ /** Description of the data source */
2059
+ description?: string;
2060
+ /** Status code */
2061
+ status: number;
2062
+ /** Status label (e.g., "active", "inactive") */
2063
+ statusLabel?: string;
2064
+ /** Whether the data source is currently connected */
2065
+ connected: boolean;
2066
+ /** Creation timestamp */
2067
+ createdAt?: string;
2068
+ /** Last update timestamp */
2069
+ updatedAt?: string;
2070
+ }
2071
+ /**
2072
+ * Semantic metrics server configuration
2073
+ * Extends base config with semantic-specific properties
2074
+ */
2075
+ interface SemanticMetricsServerConfig extends MetricsServerConfig {
2076
+ /** Must be 'semantic' */
2077
+ type: 'semantic';
2078
+ /** IDs of selected data sources */
2079
+ selectedDataSources?: string[];
2080
+ }
2081
+ /**
2082
+ * Filter definition for semantic metrics query
2083
+ */
2084
+ interface SemanticMetricsFilter {
2085
+ /** Dimension/column name to filter on */
2086
+ dimension: string;
2087
+ /** Operator (e.g., "BETWEEN", "=", ">", "<") */
2088
+ operator: string;
2089
+ /** Values for the filter */
2090
+ values: (string | number | boolean)[];
2091
+ }
2092
+ /**
2093
+ * Request body for semantic metrics query
2094
+ */
2095
+ interface SemanticMetricsQueryRequest {
2096
+ /** Data source ID to query */
2097
+ datasourceId: string | number;
2098
+ /** Array of metric names to query */
2099
+ metrics: string[];
2100
+ /** Optional group by dimensions */
2101
+ groupBy?: string[];
2102
+ /** Optional filters */
2103
+ filters?: SemanticMetricsFilter[];
2104
+ /** Optional result limit */
2105
+ limit?: number;
2106
+ }
2107
+ /**
2108
+ * Single data point in semantic metrics query response
2109
+ */
2110
+ interface SemanticMetricDataPoint {
2111
+ /** Timestamp in milliseconds */
2112
+ timestamp?: number;
2113
+ /** Metric value */
2114
+ value: number;
2115
+ /** Metric name */
2116
+ metricName?: string;
2117
+ /** Additional dimension values */
2118
+ labels?: Record<string, string>;
2119
+ /** Group by dimension values */
2120
+ groupByValues?: Record<string, string>;
2121
+ }
2122
+ /**
2123
+ * AI Hints for a single metric result
2124
+ */
2125
+ interface SemanticMetricAiHints {
2126
+ polarity: string;
2127
+ valueInterpretation: string;
2128
+ thresholds?: Array<{
2129
+ metric: string;
2130
+ operator: string;
2131
+ value: number;
2132
+ level: string;
2133
+ }>;
2134
+ suggestedFollowup?: string[];
2135
+ }
2136
+ /**
2137
+ * Single metric result from semantic metrics query
2138
+ */
2139
+ interface SemanticMetricResult {
2140
+ metricName: string;
2141
+ displayName: string;
2142
+ dataType: string;
2143
+ format: string;
2144
+ polarity: string;
2145
+ columns: string[];
2146
+ rows: Array<Record<string, unknown>>;
2147
+ rowCount: number;
2148
+ executionTimeMs: number;
2149
+ aiHints: SemanticMetricAiHints;
2150
+ }
2151
+ /**
2152
+ * Response from semantic metrics query
2153
+ */
2154
+ interface SemanticMetricsQueryResponse {
2155
+ /** Data source ID that was queried */
2156
+ datasourceId: string | number;
2157
+ /** Data source name */
2158
+ datasourceName?: string;
2159
+ /** Query results for each metric */
2160
+ results: SemanticMetricResult[];
2161
+ /** Total execution time in ms */
2162
+ totalExecutionTimeMs?: number;
2163
+ }
2164
+ /**
2165
+ * MetricsServerConfigStore interface
2166
+ * Provides CRUD operations for metrics server configuration data
2167
+ */
2168
+ interface MetricsServerConfigStore {
2169
+ /**
2170
+ * Get all metrics server configurations for a tenant
2171
+ * @param tenantId - Tenant identifier
2172
+ * @returns Array of all metrics server configurations
2173
+ */
2174
+ getAllConfigs(tenantId: string): Promise<MetricsServerConfigEntry[]>;
2175
+ /**
2176
+ * Get all metrics server configurations across all tenants
2177
+ * @returns Array of all metrics server configurations
2178
+ */
2179
+ getAllConfigsWithoutTenant(): Promise<MetricsServerConfigEntry[]>;
2180
+ /**
2181
+ * Get metrics server configuration by ID
2182
+ * @param tenantId - Tenant identifier
2183
+ * @param id - Configuration identifier
2184
+ * @returns Configuration if found, null otherwise
2185
+ */
2186
+ getConfigById(tenantId: string, id: string): Promise<MetricsServerConfigEntry | null>;
2187
+ /**
2188
+ * Get metrics server configuration by business key
2189
+ * @param tenantId - Tenant identifier
2190
+ * @param key - Business key
2191
+ * @returns Configuration if found, null otherwise
2192
+ */
2193
+ getConfigByKey(tenantId: string, key: string): Promise<MetricsServerConfigEntry | null>;
2194
+ /**
2195
+ * Create a new metrics server configuration
2196
+ * @param tenantId - Tenant identifier
2197
+ * @param id - Configuration identifier
2198
+ * @param data - Configuration creation data
2199
+ * @returns Created configuration
2200
+ */
2201
+ createConfig(tenantId: string, id: string, data: CreateMetricsServerConfigRequest): Promise<MetricsServerConfigEntry>;
2202
+ /**
2203
+ * Update an existing metrics server configuration
2204
+ * @param tenantId - Tenant identifier
2205
+ * @param id - Configuration identifier
2206
+ * @param updates - Partial configuration data to update
2207
+ * @returns Updated configuration if found, null otherwise
2208
+ */
2209
+ updateConfig(tenantId: string, id: string, updates: Partial<UpdateMetricsServerConfigRequest>): Promise<MetricsServerConfigEntry | null>;
2210
+ /**
2211
+ * Delete a metrics server configuration by ID
2212
+ * @param tenantId - Tenant identifier
2213
+ * @param id - Configuration identifier
2214
+ * @returns true if deleted, false otherwise
2215
+ */
2216
+ deleteConfig(tenantId: string, id: string): Promise<boolean>;
2217
+ /**
2218
+ * Check if configuration exists
2219
+ * @param tenantId - Tenant identifier
2220
+ * @param id - Configuration identifier
2221
+ * @returns true if configuration exists, false otherwise
2222
+ */
2223
+ hasConfig(tenantId: string, id: string): Promise<boolean>;
2224
+ }
2225
+
2226
+ type UserStatus = 'active' | 'pending' | 'suspended';
2227
+ interface User {
2228
+ id: string;
2229
+ email: string;
2230
+ name: string;
2231
+ status: UserStatus;
2232
+ metadata?: Record<string, any>;
2233
+ createdAt: Date;
2234
+ updatedAt: Date;
2235
+ }
2236
+ interface CreateUserRequest {
2237
+ email: string;
2238
+ name: string;
2239
+ status?: UserStatus;
2240
+ metadata?: Record<string, any>;
2241
+ }
2242
+ interface UpdateUserRequest {
2243
+ email?: string;
2244
+ name?: string;
2245
+ status?: UserStatus;
2246
+ metadata?: Record<string, any>;
2247
+ }
2248
+ interface UserStore {
2249
+ getAllUsers(): Promise<User[]>;
2250
+ getUserById(id: string): Promise<User | null>;
2251
+ getUserByEmail(email: string): Promise<User | null>;
2252
+ createUser(id: string, data: CreateUserRequest): Promise<User>;
2253
+ updateUser(id: string, updates: UpdateUserRequest): Promise<User | null>;
2254
+ deleteUser(id: string): Promise<boolean>;
2255
+ }
2256
+
2257
+ /**
2258
+ * UserTenantLinkProtocol
2259
+ *
2260
+ * User-Tenant relationship store protocol
2261
+ * Supports many-to-many relationship between users and tenants
2262
+ */
2263
+ /**
2264
+ * User role in tenant
2265
+ */
2266
+ type UserTenantRole = 'owner' | 'admin' | 'member';
2267
+ /**
2268
+ * User-Tenant link type definition
2269
+ */
2270
+ interface UserTenantLink {
2271
+ userId: string;
2272
+ tenantId: string;
2273
+ role: UserTenantRole;
2274
+ joinedAt: Date;
2275
+ metadata?: Record<string, any>;
2276
+ }
2277
+ /**
2278
+ * Create user-tenant link request
2279
+ */
2280
+ interface CreateUserTenantLinkRequest {
2281
+ userId: string;
2282
+ tenantId: string;
2283
+ role?: UserTenantRole;
2284
+ metadata?: Record<string, any>;
2285
+ }
2286
+ /**
2287
+ * Update user-tenant link request
2288
+ */
2289
+ interface UpdateUserTenantLinkRequest {
2290
+ role?: UserTenantRole;
2291
+ metadata?: Record<string, any>;
2292
+ }
2293
+ /**
2294
+ * UserTenantLinkStore interface
2295
+ * Manages many-to-many relationship between users and tenants
2296
+ */
2297
+ interface UserTenantLinkStore {
2298
+ /**
2299
+ * Get all tenants for a user
2300
+ */
2301
+ getTenantsByUser(userId: string): Promise<UserTenantLink[]>;
2302
+ /**
2303
+ * Get all users for a tenant
2304
+ */
2305
+ getUsersByTenant(tenantId: string): Promise<UserTenantLink[]>;
2306
+ /**
2307
+ * Get specific link
2308
+ */
2309
+ getLink(userId: string, tenantId: string): Promise<UserTenantLink | null>;
2310
+ /**
2311
+ * Create link between user and tenant
2312
+ */
2313
+ createLink(data: CreateUserTenantLinkRequest): Promise<UserTenantLink>;
2314
+ /**
2315
+ * Update link
2316
+ */
2317
+ updateLink(userId: string, tenantId: string, updates: UpdateUserTenantLinkRequest): Promise<UserTenantLink | null>;
2318
+ /**
2319
+ * Delete link
2320
+ */
2321
+ deleteLink(userId: string, tenantId: string): Promise<boolean>;
2322
+ /**
2323
+ * Check if user belongs to tenant
2324
+ */
2325
+ hasLink(userId: string, tenantId: string): Promise<boolean>;
2326
+ }
2327
+
1539
2328
  /**
1540
2329
  * 通用类型定义
1541
2330
  *
@@ -1599,4 +2388,4 @@ type Timestamp = number;
1599
2388
  */
1600
2389
  type Callback<T = any, R = void> = (data: T) => R | Promise<R>;
1601
2390
 
1602
- export { type AgentClient, type AgentConfig, type AgentConfigWithTools, type AgentLatticeProtocol, type AgentMiddlewareConfig, type AgentRunConfig, AgentType, type Assistant, type AssistantMessage, type AssistantStore, type AvailableModule, type BaseLatticeProtocol, type BaseMessage, type BrowserMiddlewareConfig, type Callback, type CodeEvalMiddlewareConfig, type CreateAssistantRequest, type CreateSkillRequest, type CreateThreadRequest, type DeepAgentConfig, type DeveloperMessage, type EmbeddingsConfig, type EmbeddingsLatticeProtocol, type FilterCondition, type GraphBuildOptions, type ID, type InterruptMessage, type LLMConfig, type LatticeError, type LatticeEventBus, type LatticeMessage, type LoggerClient, type LoggerConfig, type LoggerContext, type LoggerLatticeProtocol, LoggerType, type McpClient, type McpClientOptions, type McpConnectionStatus, type McpLatticeMessage, type McpLatticeProtocol, McpMessageType, type McpServerConfig, type McpStats, type McpTool, type McpToolResult, type McpTransportType, type MemoryClient, type MemoryConfig, type MemoryLatticeProtocol, MemoryType, type Message, type MessageChunk, type MiddlewareType, type ModelLatticeProtocol, type PaginatedResult, type PaginationParams, type PinoFileOptions, type QueryParams, type QueueClient, type QueueConfig, type QueueLatticeProtocol, type QueueResult, QueueType, type ReactAgentConfig, type Result, type SandboxMiddlewareConfig, type ScheduleClient, type ScheduleConfig, type ScheduleCronOptions, ScheduleExecutionType, type ScheduleLatticeProtocol, type ScheduleOnceOptions, type ScheduleStorage, ScheduleType, type ScheduledTaskDefinition, ScheduledTaskStatus, type Skill, type SkillClient, type SkillClientType, type SkillConfig, type SkillLatticeProtocol, type SkillStore, type SqlMiddlewareConfig, type SystemMessage, type TaskHandler, type Thread, type ThreadStore, type Timestamp, type ToolCall, type ToolConfig, type ToolExecutor, type ToolLatticeProtocol, type ToolMessage, type UIComponent, UIComponentType, type UIConfig, type UILatticeProtocol, type UserMessage, type VectorStoreConfig, type VectorStoreLatticeProtocol, getSubAgentsFromConfig, getToolsFromConfig, hasTools, isDeepAgentConfig };
2391
+ export { type AgentClient, type AgentConfig, type AgentConfigWithTools, type AgentLatticeProtocol, type AgentMiddlewareConfig, type AgentRunConfig, AgentType, type Assistant, type AssistantMessage, type AssistantStore, type AvailableModule, type BaseLatticeProtocol, type BaseMessage, type BrowserMiddlewareConfig, type Callback, type CodeEvalMiddlewareConfig, type CreateAssistantRequest, type CreateDatabaseConfigRequest, type CreateMetricsServerConfigRequest, type CreateProjectRequest, type CreateSkillRequest, type CreateTenantRequest, type CreateThreadRequest, type CreateUserRequest, type CreateUserTenantLinkRequest, type CreateWorkspaceRequest, type DataSource, type DatabaseConfig, type DatabaseConfigEntry, type DatabaseConfigStore, type DatabaseType, type DeepAgentConfig, type DeveloperMessage, type EmbeddingsConfig, type EmbeddingsLatticeProtocol, type FilterCondition, type GraphBuildOptions, type ID, type InterruptMessage, type LLMConfig, type LatticeError, type LatticeEventBus, type LatticeMessage, type LoggerClient, type LoggerConfig, type LoggerContext, type LoggerLatticeProtocol, LoggerType, type McpClient, type McpClientOptions, type McpConnectionStatus, type McpLatticeMessage, type McpLatticeProtocol, McpMessageType, type McpServerConfig, type McpStats, type McpTool, type McpToolResult, type McpTransportType, type MemoryClient, type MemoryConfig, type MemoryLatticeProtocol, MemoryType, type Message, type MessageChunk, type MetricDataPoint, type MetricMeta, type MetricQueryResult, type MetricsMiddlewareConfig, type MetricsServerConfig, type MetricsServerConfigEntry, type MetricsServerConfigStore, type MetricsServerType, type MiddlewareType, type ModelLatticeProtocol, type PaginatedResult, type PaginationParams, type PinoFileOptions, type Project, type ProjectStore, type QueryParams, type QueueClient, type QueueConfig, type QueueLatticeProtocol, type QueueResult, QueueType, type ReactAgentConfig, type Result, type SandboxMiddlewareConfig, type ScheduleClient, type ScheduleConfig, type ScheduleCronOptions, ScheduleExecutionType, type ScheduleLatticeProtocol, type ScheduleOnceOptions, type ScheduleStorage, ScheduleType, type ScheduledTaskDefinition, ScheduledTaskStatus, type SemanticMetricAiHints, type SemanticMetricDataPoint, type SemanticMetricResult, type SemanticMetricsFilter, type SemanticMetricsQueryRequest, type SemanticMetricsQueryResponse, type SemanticMetricsServerConfig, type Skill, type SkillClient, type SkillClientType, type SkillConfig, type SkillLatticeProtocol, type SkillStore, type SqlMiddlewareConfig, type StorageType, type SystemMessage, type TaskHandler, type TeamAgentConfig, type TeamTeammateConfig, type Tenant, type TenantStatus, type TenantStore, type Thread, type ThreadStore, type Timestamp, type ToolCall, type ToolConfig, type ToolExecutor, type ToolLatticeProtocol, type ToolMessage, type UIComponent, UIComponentType, type UIConfig, type UILatticeProtocol, type UpdateDatabaseConfigRequest, type UpdateMetricsServerConfigRequest, type UpdateProjectRequest, type UpdateTenantRequest, type UpdateUserRequest, type UpdateUserTenantLinkRequest, type UpdateWorkspaceRequest, type User, type UserMessage, type UserStatus, type UserStore, type UserTenantLink, type UserTenantLinkStore, type UserTenantRole, type VectorStoreConfig, type VectorStoreLatticeProtocol, type Workspace, type WorkspaceStore, getSubAgentsFromConfig, getToolsFromConfig, hasTools, isDeepAgentConfig, isTeamAgentConfig };