@fluxbase/sdk 2026.1.1-rc.9 → 2026.1.2

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.cjs CHANGED
@@ -5034,6 +5034,148 @@ var SettingsClient = class {
5034
5034
  `/api/v1/settings/secret/${encodeURIComponent(key)}`
5035
5035
  );
5036
5036
  }
5037
+ // ============================================================================
5038
+ // User Settings (non-encrypted, with system fallback support)
5039
+ // These methods mirror the edge function secrets helper pattern for regular settings
5040
+ // ============================================================================
5041
+ /**
5042
+ * Get a setting with user -> system fallback
5043
+ *
5044
+ * First checks for a user-specific setting, then falls back to system default.
5045
+ * Returns both the value and the source ("user" or "system").
5046
+ *
5047
+ * @param key - Setting key (e.g., 'theme', 'notifications.email')
5048
+ * @returns Promise resolving to UserSettingWithSource with value and source
5049
+ * @throws Error if setting doesn't exist in either user or system
5050
+ *
5051
+ * @example
5052
+ * ```typescript
5053
+ * // Get theme with fallback to system default
5054
+ * const { value, source } = await client.settings.getSetting('theme')
5055
+ * console.log(value) // { mode: 'dark' }
5056
+ * console.log(source) // 'system' (from system default)
5057
+ *
5058
+ * // After user sets their own theme
5059
+ * const { value, source } = await client.settings.getSetting('theme')
5060
+ * console.log(source) // 'user' (user's own setting)
5061
+ * ```
5062
+ */
5063
+ async getSetting(key) {
5064
+ return await this.fetch.get(
5065
+ `/api/v1/settings/user/${encodeURIComponent(key)}`
5066
+ );
5067
+ }
5068
+ /**
5069
+ * Get only the user's own setting (no fallback to system)
5070
+ *
5071
+ * Returns the user's own setting for this key, or throws if not found.
5072
+ * Use this when you specifically want to check if the user has set a value.
5073
+ *
5074
+ * @param key - Setting key
5075
+ * @returns Promise resolving to UserSetting
5076
+ * @throws Error if user has no setting with this key
5077
+ *
5078
+ * @example
5079
+ * ```typescript
5080
+ * // Check if user has set their own theme
5081
+ * try {
5082
+ * const setting = await client.settings.getUserSetting('theme')
5083
+ * console.log('User theme:', setting.value)
5084
+ * } catch (e) {
5085
+ * console.log('User has not set a theme')
5086
+ * }
5087
+ * ```
5088
+ */
5089
+ async getUserSetting(key) {
5090
+ return await this.fetch.get(
5091
+ `/api/v1/settings/user/own/${encodeURIComponent(key)}`
5092
+ );
5093
+ }
5094
+ /**
5095
+ * Get a system-level setting (no user override)
5096
+ *
5097
+ * Returns the system default for this key, ignoring any user-specific value.
5098
+ * Useful for reading default configurations.
5099
+ *
5100
+ * @param key - Setting key
5101
+ * @returns Promise resolving to the setting value
5102
+ * @throws Error if system setting doesn't exist
5103
+ *
5104
+ * @example
5105
+ * ```typescript
5106
+ * // Get system default theme
5107
+ * const { value } = await client.settings.getSystemSetting('theme')
5108
+ * console.log('System default theme:', value)
5109
+ * ```
5110
+ */
5111
+ async getSystemSetting(key) {
5112
+ return await this.fetch.get(`/api/v1/settings/user/system/${encodeURIComponent(key)}`);
5113
+ }
5114
+ /**
5115
+ * Set a user setting (create or update)
5116
+ *
5117
+ * Creates or updates a non-encrypted user setting.
5118
+ * This value will override any system default when using getSetting().
5119
+ *
5120
+ * @param key - Setting key
5121
+ * @param value - Setting value (any JSON-serializable object)
5122
+ * @param options - Optional description
5123
+ * @returns Promise resolving to UserSetting
5124
+ *
5125
+ * @example
5126
+ * ```typescript
5127
+ * // Set user's theme preference
5128
+ * await client.settings.setSetting('theme', { mode: 'dark', accent: 'blue' })
5129
+ *
5130
+ * // Set with description
5131
+ * await client.settings.setSetting('notifications', { email: true, push: false }, {
5132
+ * description: 'User notification preferences'
5133
+ * })
5134
+ * ```
5135
+ */
5136
+ async setSetting(key, value, options) {
5137
+ return await this.fetch.put(
5138
+ `/api/v1/settings/user/${encodeURIComponent(key)}`,
5139
+ {
5140
+ value,
5141
+ description: options?.description
5142
+ }
5143
+ );
5144
+ }
5145
+ /**
5146
+ * List all user's own settings
5147
+ *
5148
+ * Returns all non-encrypted settings the current user has set.
5149
+ * Does not include system defaults.
5150
+ *
5151
+ * @returns Promise resolving to array of UserSetting
5152
+ *
5153
+ * @example
5154
+ * ```typescript
5155
+ * const settings = await client.settings.listSettings()
5156
+ * settings.forEach(s => console.log(s.key, s.value))
5157
+ * ```
5158
+ */
5159
+ async listSettings() {
5160
+ return await this.fetch.get("/api/v1/settings/user/list");
5161
+ }
5162
+ /**
5163
+ * Delete a user setting
5164
+ *
5165
+ * Removes the user's own setting, reverting to system default (if any).
5166
+ *
5167
+ * @param key - Setting key to delete
5168
+ * @returns Promise<void>
5169
+ *
5170
+ * @example
5171
+ * ```typescript
5172
+ * // Remove user's theme preference, revert to system default
5173
+ * await client.settings.deleteSetting('theme')
5174
+ * ```
5175
+ */
5176
+ async deleteSetting(key) {
5177
+ await this.fetch.delete(`/api/v1/settings/user/${encodeURIComponent(key)}`);
5178
+ }
5037
5179
  };
5038
5180
 
5039
5181
  // src/ddl.ts
@@ -7759,6 +7901,46 @@ var FluxbaseAdminAI = class {
7759
7901
  return { data: null, error };
7760
7902
  }
7761
7903
  }
7904
+ /**
7905
+ * Set a provider as the embedding provider
7906
+ *
7907
+ * @param id - Provider ID
7908
+ * @returns Promise resolving to { data, error } tuple
7909
+ *
7910
+ * @example
7911
+ * ```typescript
7912
+ * const { data, error } = await client.admin.ai.setEmbeddingProvider('uuid')
7913
+ * ```
7914
+ */
7915
+ async setEmbeddingProvider(id) {
7916
+ try {
7917
+ const data = await this.fetch.put(`/api/v1/admin/ai/providers/${id}/embedding`, {});
7918
+ return { data, error: null };
7919
+ } catch (error) {
7920
+ return { data: null, error };
7921
+ }
7922
+ }
7923
+ /**
7924
+ * Clear explicit embedding provider preference (revert to default)
7925
+ *
7926
+ * @param id - Provider ID to clear
7927
+ * @returns Promise resolving to { data, error } tuple
7928
+ *
7929
+ * @example
7930
+ * ```typescript
7931
+ * const { data, error } = await client.admin.ai.clearEmbeddingProvider('uuid')
7932
+ * ```
7933
+ */
7934
+ async clearEmbeddingProvider(id) {
7935
+ try {
7936
+ const data = await this.fetch.delete(
7937
+ `/api/v1/admin/ai/providers/${id}/embedding`
7938
+ );
7939
+ return { data, error: null };
7940
+ } catch (error) {
7941
+ return { data: null, error };
7942
+ }
7943
+ }
7762
7944
  // ============================================================================
7763
7945
  // KNOWLEDGE BASE MANAGEMENT (RAG)
7764
7946
  // ============================================================================