@agent-native/core 0.107.1 → 0.108.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (257) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +12 -0
  3. package/corpus/core/docs/content/actions.mdx +48 -0
  4. package/corpus/core/docs/content/locales/ar-SA/actions.mdx +38 -0
  5. package/corpus/core/docs/content/locales/de-DE/actions.mdx +38 -0
  6. package/corpus/core/docs/content/locales/es-ES/actions.mdx +38 -0
  7. package/corpus/core/docs/content/locales/fr-FR/actions.mdx +38 -0
  8. package/corpus/core/docs/content/locales/hi-IN/actions.mdx +38 -0
  9. package/corpus/core/docs/content/locales/ja-JP/actions.mdx +38 -0
  10. package/corpus/core/docs/content/locales/ko-KR/actions.mdx +38 -0
  11. package/corpus/core/docs/content/locales/pt-BR/actions.mdx +38 -0
  12. package/corpus/core/docs/content/locales/zh-CN/actions.mdx +38 -0
  13. package/corpus/core/docs/content/locales/zh-TW/actions.mdx +38 -0
  14. package/corpus/core/package.json +5 -1
  15. package/corpus/core/src/a2a/artifact-response.ts +32 -10
  16. package/corpus/core/src/a2a-claims.ts +52 -0
  17. package/corpus/core/src/action.ts +6 -2
  18. package/corpus/core/src/audit/record.ts +6 -0
  19. package/corpus/core/src/client/feature-flags/FeatureFlagsPanel.tsx +519 -0
  20. package/corpus/core/src/client/feature-flags/helpers.ts +77 -0
  21. package/corpus/core/src/client/feature-flags/index.ts +13 -0
  22. package/corpus/core/src/client/feature-flags/types.ts +29 -0
  23. package/corpus/core/src/client/feature-flags/use-feature-flag.ts +26 -0
  24. package/corpus/core/src/client/index.ts +11 -0
  25. package/corpus/core/src/extensions/routes.ts +1 -1
  26. package/corpus/core/src/feature-flags/a2a-action-route.ts +56 -0
  27. package/corpus/core/src/feature-flags/actions/get-feature-flags.ts +24 -0
  28. package/corpus/core/src/feature-flags/actions/list-feature-flags.ts +69 -0
  29. package/corpus/core/src/feature-flags/actions/set-feature-flag.ts +89 -0
  30. package/corpus/core/src/feature-flags/index.ts +21 -0
  31. package/corpus/core/src/feature-flags/permissions.ts +53 -0
  32. package/corpus/core/src/feature-flags/plugin.ts +44 -0
  33. package/corpus/core/src/feature-flags/registry.ts +96 -0
  34. package/corpus/core/src/feature-flags/store.ts +176 -0
  35. package/corpus/core/src/index.ts +15 -0
  36. package/corpus/core/src/integrations/a2a-continuation-processor.ts +107 -3
  37. package/corpus/core/src/integrations/pending-tasks-store.ts +98 -1
  38. package/corpus/core/src/integrations/plugin.ts +129 -4
  39. package/corpus/core/src/integrations/webhook-handler.ts +339 -36
  40. package/corpus/core/src/localization/default-messages.ts +47 -0
  41. package/corpus/core/src/server/action-discovery.ts +12 -0
  42. package/corpus/core/src/server/action-routes.ts +47 -5
  43. package/corpus/core/src/server/agent-chat-plugin.ts +93 -8
  44. package/corpus/core/src/server/index.ts +1 -0
  45. package/corpus/core/src/settings/org-settings.ts +13 -0
  46. package/corpus/core/src/settings/store.ts +57 -0
  47. package/corpus/core/src/templates/default/.agents/skills/feature-flags/SKILL.md +169 -0
  48. package/corpus/core/src/templates/default/AGENTS.md +1 -0
  49. package/corpus/core/src/templates/headless/.agents/skills/feature-flags/SKILL.md +169 -0
  50. package/corpus/core/src/templates/workspace-core/.agents/skills/feature-flags/SKILL.md +169 -0
  51. package/corpus/core/src/templates/workspace-core/AGENTS.md +1 -1
  52. package/corpus/core/src/templates/workspace-root/AGENTS.md +1 -1
  53. package/corpus/core/src/vite/action-types-plugin.ts +12 -0
  54. package/corpus/templates/analytics/.agents/skills/feature-flags/SKILL.md +169 -0
  55. package/corpus/templates/analytics/AGENTS.md +15 -3
  56. package/corpus/templates/analytics/actions/list-workspace-feature-flags.ts +15 -0
  57. package/corpus/templates/analytics/actions/navigate.ts +2 -2
  58. package/corpus/templates/analytics/actions/set-workspace-feature-flag.ts +45 -0
  59. package/corpus/templates/analytics/actions/view-screen.ts +13 -0
  60. package/corpus/templates/analytics/app/components/agents/FeatureFlagsFleetPanel.tsx +243 -0
  61. package/corpus/templates/analytics/app/components/layout/CommandPalette.tsx +11 -3
  62. package/corpus/templates/analytics/app/hooks/use-navigation-state.ts +3 -1
  63. package/corpus/templates/analytics/app/i18n/zh-TW.ts +17 -0
  64. package/corpus/templates/analytics/app/i18n-data.ts +251 -0
  65. package/corpus/templates/analytics/app/pages/Agents.tsx +22 -2
  66. package/corpus/templates/analytics/changelog/2026-07-17-manage-feature-flag-rollouts-across-your-organization-s-apps.md +6 -0
  67. package/corpus/templates/analytics/server/lib/db-admin-connections.ts +13 -5
  68. package/corpus/templates/analytics/server/lib/workspace-feature-flags.ts +347 -0
  69. package/corpus/templates/assets/.agents/skills/feature-flags/SKILL.md +169 -0
  70. package/corpus/templates/brain/.agents/skills/feature-flags/SKILL.md +169 -0
  71. package/corpus/templates/calendar/.agents/skills/feature-flags/SKILL.md +169 -0
  72. package/corpus/templates/chat/.agents/skills/feature-flags/SKILL.md +169 -0
  73. package/corpus/templates/clips/.agents/skills/feature-flags/SKILL.md +169 -0
  74. package/corpus/templates/clips/server/plugins/feature-flags.ts +11 -0
  75. package/corpus/templates/clips/shared/feature-flags.ts +30 -37
  76. package/corpus/templates/content/.agents/skills/feature-flags/SKILL.md +169 -0
  77. package/corpus/templates/design/.agents/skills/feature-flags/SKILL.md +169 -0
  78. package/corpus/templates/design/AGENTS.md +5 -3
  79. package/corpus/templates/design/actions/add-fusion-screens.ts +4 -6
  80. package/corpus/templates/design/actions/apply-fusion-edits.ts +4 -6
  81. package/corpus/templates/design/actions/create-fusion-app.ts +5 -4
  82. package/corpus/templates/design/actions/deploy-fusion-app.ts +4 -3
  83. package/corpus/templates/design/actions/get-fusion-deploy-status.ts +4 -6
  84. package/corpus/templates/design/actions/list-fusion-edits.ts +4 -3
  85. package/corpus/templates/design/actions/push-fusion-app.ts +4 -6
  86. package/corpus/templates/design/actions/queue-fusion-edit.ts +4 -3
  87. package/corpus/templates/design/actions/send-fusion-message.ts +4 -6
  88. package/corpus/templates/design/actions/sync-fusion-app.ts +4 -3
  89. package/corpus/templates/design/app/components/editor/PromptDialog.tsx +1 -1
  90. package/corpus/templates/design/app/pages/Index.tsx +8 -6
  91. package/corpus/templates/design/server/plugins/feature-flags.ts +5 -0
  92. package/corpus/templates/design/shared/full-app.ts +10 -7
  93. package/corpus/templates/dispatch/.agents/skills/feature-flags/SKILL.md +169 -0
  94. package/corpus/templates/forms/.agents/skills/feature-flags/SKILL.md +169 -0
  95. package/corpus/templates/macros/.agents/skills/feature-flags/SKILL.md +169 -0
  96. package/corpus/templates/mail/.agents/skills/feature-flags/SKILL.md +169 -0
  97. package/corpus/templates/plan/.agents/skills/feature-flags/SKILL.md +169 -0
  98. package/corpus/templates/slides/.agents/skills/feature-flags/SKILL.md +169 -0
  99. package/corpus/templates/tasks/.agents/skills/feature-flags/SKILL.md +169 -0
  100. package/dist/a2a/artifact-response.d.ts +5 -1
  101. package/dist/a2a/artifact-response.d.ts.map +1 -1
  102. package/dist/a2a/artifact-response.js +18 -12
  103. package/dist/a2a/artifact-response.js.map +1 -1
  104. package/dist/a2a-claims.d.ts +10 -0
  105. package/dist/a2a-claims.d.ts.map +1 -0
  106. package/dist/a2a-claims.js +41 -0
  107. package/dist/a2a-claims.js.map +1 -0
  108. package/dist/action.d.ts +6 -2
  109. package/dist/action.d.ts.map +1 -1
  110. package/dist/action.js.map +1 -1
  111. package/dist/audit/record.d.ts +3 -0
  112. package/dist/audit/record.d.ts.map +1 -1
  113. package/dist/audit/record.js +3 -0
  114. package/dist/audit/record.js.map +1 -1
  115. package/dist/client/feature-flags/FeatureFlagsPanel.d.ts +10 -0
  116. package/dist/client/feature-flags/FeatureFlagsPanel.d.ts.map +1 -0
  117. package/dist/client/feature-flags/FeatureFlagsPanel.js +143 -0
  118. package/dist/client/feature-flags/FeatureFlagsPanel.js.map +1 -0
  119. package/dist/client/feature-flags/helpers.d.ts +16 -0
  120. package/dist/client/feature-flags/helpers.d.ts.map +1 -0
  121. package/dist/client/feature-flags/helpers.js +50 -0
  122. package/dist/client/feature-flags/helpers.js.map +1 -0
  123. package/dist/client/feature-flags/index.d.ts +5 -0
  124. package/dist/client/feature-flags/index.d.ts.map +1 -0
  125. package/dist/client/feature-flags/index.js +4 -0
  126. package/dist/client/feature-flags/index.js.map +1 -0
  127. package/dist/client/feature-flags/types.d.ts +27 -0
  128. package/dist/client/feature-flags/types.d.ts.map +1 -0
  129. package/dist/client/feature-flags/types.js +2 -0
  130. package/dist/client/feature-flags/types.js.map +1 -0
  131. package/dist/client/feature-flags/use-feature-flag.d.ts +8 -0
  132. package/dist/client/feature-flags/use-feature-flag.d.ts.map +1 -0
  133. package/dist/client/feature-flags/use-feature-flag.js +15 -0
  134. package/dist/client/feature-flags/use-feature-flag.js.map +1 -0
  135. package/dist/client/index.d.ts +1 -0
  136. package/dist/client/index.d.ts.map +1 -1
  137. package/dist/client/index.js +1 -0
  138. package/dist/client/index.js.map +1 -1
  139. package/dist/collab/routes.d.ts +1 -1
  140. package/dist/collab/struct-routes.d.ts +1 -1
  141. package/dist/extensions/routes.d.ts.map +1 -1
  142. package/dist/extensions/routes.js +1 -1
  143. package/dist/extensions/routes.js.map +1 -1
  144. package/dist/feature-flags/a2a-action-route.d.ts +14 -0
  145. package/dist/feature-flags/a2a-action-route.d.ts.map +1 -0
  146. package/dist/feature-flags/a2a-action-route.js +50 -0
  147. package/dist/feature-flags/a2a-action-route.js.map +1 -0
  148. package/dist/feature-flags/actions/get-feature-flags.d.ts +3 -0
  149. package/dist/feature-flags/actions/get-feature-flags.d.ts.map +1 -0
  150. package/dist/feature-flags/actions/get-feature-flags.js +18 -0
  151. package/dist/feature-flags/actions/get-feature-flags.js.map +1 -0
  152. package/dist/feature-flags/actions/list-feature-flags.d.ts +28 -0
  153. package/dist/feature-flags/actions/list-feature-flags.d.ts.map +1 -0
  154. package/dist/feature-flags/actions/list-feature-flags.js +60 -0
  155. package/dist/feature-flags/actions/list-feature-flags.js.map +1 -0
  156. package/dist/feature-flags/actions/set-feature-flag.d.ts +26 -0
  157. package/dist/feature-flags/actions/set-feature-flag.d.ts.map +1 -0
  158. package/dist/feature-flags/actions/set-feature-flag.js +78 -0
  159. package/dist/feature-flags/actions/set-feature-flag.js.map +1 -0
  160. package/dist/feature-flags/index.d.ts +5 -0
  161. package/dist/feature-flags/index.d.ts.map +1 -0
  162. package/dist/feature-flags/index.js +5 -0
  163. package/dist/feature-flags/index.js.map +1 -0
  164. package/dist/feature-flags/permissions.d.ts +13 -0
  165. package/dist/feature-flags/permissions.d.ts.map +1 -0
  166. package/dist/feature-flags/permissions.js +37 -0
  167. package/dist/feature-flags/permissions.js.map +1 -0
  168. package/dist/feature-flags/plugin.d.ts +17 -0
  169. package/dist/feature-flags/plugin.d.ts.map +1 -0
  170. package/dist/feature-flags/plugin.js +29 -0
  171. package/dist/feature-flags/plugin.js.map +1 -0
  172. package/dist/feature-flags/registry.d.ts +23 -0
  173. package/dist/feature-flags/registry.d.ts.map +1 -0
  174. package/dist/feature-flags/registry.js +59 -0
  175. package/dist/feature-flags/registry.js.map +1 -0
  176. package/dist/feature-flags/store.d.ts +31 -0
  177. package/dist/feature-flags/store.d.ts.map +1 -0
  178. package/dist/feature-flags/store.js +124 -0
  179. package/dist/feature-flags/store.js.map +1 -0
  180. package/dist/index.d.ts +1 -0
  181. package/dist/index.d.ts.map +1 -1
  182. package/dist/index.js +1 -0
  183. package/dist/index.js.map +1 -1
  184. package/dist/integrations/a2a-continuation-processor.js +62 -5
  185. package/dist/integrations/a2a-continuation-processor.js.map +1 -1
  186. package/dist/integrations/pending-tasks-store.d.ts +3 -0
  187. package/dist/integrations/pending-tasks-store.d.ts.map +1 -1
  188. package/dist/integrations/pending-tasks-store.js +75 -1
  189. package/dist/integrations/pending-tasks-store.js.map +1 -1
  190. package/dist/integrations/plugin.d.ts.map +1 -1
  191. package/dist/integrations/plugin.js +81 -5
  192. package/dist/integrations/plugin.js.map +1 -1
  193. package/dist/integrations/webhook-handler.d.ts +23 -2
  194. package/dist/integrations/webhook-handler.d.ts.map +1 -1
  195. package/dist/integrations/webhook-handler.js +257 -35
  196. package/dist/integrations/webhook-handler.js.map +1 -1
  197. package/dist/localization/default-messages.d.ts +42 -0
  198. package/dist/localization/default-messages.d.ts.map +1 -1
  199. package/dist/localization/default-messages.js +42 -0
  200. package/dist/localization/default-messages.js.map +1 -1
  201. package/dist/notifications/routes.d.ts +2 -2
  202. package/dist/observability/routes.d.ts +1 -1
  203. package/dist/progress/routes.d.ts +1 -1
  204. package/dist/server/action-discovery.d.ts.map +1 -1
  205. package/dist/server/action-discovery.js +12 -0
  206. package/dist/server/action-discovery.js.map +1 -1
  207. package/dist/server/action-routes.d.ts +3 -0
  208. package/dist/server/action-routes.d.ts.map +1 -1
  209. package/dist/server/action-routes.js +45 -5
  210. package/dist/server/action-routes.js.map +1 -1
  211. package/dist/server/agent-chat-plugin.d.ts +6 -0
  212. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  213. package/dist/server/agent-chat-plugin.js +71 -6
  214. package/dist/server/agent-chat-plugin.js.map +1 -1
  215. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  216. package/dist/server/index.d.ts +1 -0
  217. package/dist/server/index.d.ts.map +1 -1
  218. package/dist/server/index.js +1 -0
  219. package/dist/server/index.js.map +1 -1
  220. package/dist/settings/org-settings.d.ts +2 -0
  221. package/dist/settings/org-settings.d.ts.map +1 -1
  222. package/dist/settings/org-settings.js +5 -1
  223. package/dist/settings/org-settings.js.map +1 -1
  224. package/dist/settings/store.d.ts +8 -0
  225. package/dist/settings/store.d.ts.map +1 -1
  226. package/dist/settings/store.js +48 -0
  227. package/dist/settings/store.js.map +1 -1
  228. package/dist/templates/chat/.agents/skills/feature-flags/SKILL.md +169 -0
  229. package/dist/templates/default/.agents/skills/feature-flags/SKILL.md +169 -0
  230. package/dist/templates/default/AGENTS.md +1 -0
  231. package/dist/templates/headless/.agents/skills/feature-flags/SKILL.md +169 -0
  232. package/dist/templates/workspace-core/.agents/skills/feature-flags/SKILL.md +169 -0
  233. package/dist/templates/workspace-core/AGENTS.md +1 -1
  234. package/dist/templates/workspace-root/AGENTS.md +1 -1
  235. package/dist/vite/action-types-plugin.d.ts.map +1 -1
  236. package/dist/vite/action-types-plugin.js +12 -0
  237. package/dist/vite/action-types-plugin.js.map +1 -1
  238. package/docs/content/actions.mdx +48 -0
  239. package/docs/content/locales/ar-SA/actions.mdx +38 -0
  240. package/docs/content/locales/de-DE/actions.mdx +38 -0
  241. package/docs/content/locales/es-ES/actions.mdx +38 -0
  242. package/docs/content/locales/fr-FR/actions.mdx +38 -0
  243. package/docs/content/locales/hi-IN/actions.mdx +38 -0
  244. package/docs/content/locales/ja-JP/actions.mdx +38 -0
  245. package/docs/content/locales/ko-KR/actions.mdx +38 -0
  246. package/docs/content/locales/pt-BR/actions.mdx +38 -0
  247. package/docs/content/locales/zh-CN/actions.mdx +38 -0
  248. package/docs/content/locales/zh-TW/actions.mdx +38 -0
  249. package/package.json +5 -1
  250. package/src/templates/chat/.agents/skills/feature-flags/SKILL.md +169 -0
  251. package/src/templates/default/.agents/skills/feature-flags/SKILL.md +169 -0
  252. package/src/templates/default/AGENTS.md +1 -0
  253. package/src/templates/headless/.agents/skills/feature-flags/SKILL.md +169 -0
  254. package/src/templates/workspace-core/.agents/skills/feature-flags/SKILL.md +169 -0
  255. package/src/templates/workspace-core/AGENTS.md +1 -1
  256. package/src/templates/workspace-root/AGENTS.md +1 -1
  257. package/corpus/templates/clips/actions/get-feature-flags.ts +0 -30
@@ -0,0 +1,143 @@
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, } from "@agent-native/toolkit/ui/alert-dialog";
3
+ import { Badge } from "@agent-native/toolkit/ui/badge";
4
+ import { Button } from "@agent-native/toolkit/ui/button";
5
+ import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuTrigger, } from "@agent-native/toolkit/ui/dropdown-menu";
6
+ import { Input } from "@agent-native/toolkit/ui/input";
7
+ import { Label } from "@agent-native/toolkit/ui/label";
8
+ import { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue, } from "@agent-native/toolkit/ui/select";
9
+ import { Textarea } from "@agent-native/toolkit/ui/textarea";
10
+ import { IconCheck, IconDots, IconSettings, IconLoader2, IconUserCheck, } from "@tabler/icons-react";
11
+ import { useMemo, useState } from "react";
12
+ import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from "../components/ui/dialog.js";
13
+ import { useT } from "../i18n.js";
14
+ import { normalizeFeatureFlagPercentage, normalizeFeatureFlagRules, } from "./helpers.js";
15
+ function formatActor(actor) {
16
+ if (!actor)
17
+ return null;
18
+ if (typeof actor === "string")
19
+ return actor;
20
+ return actor.name ?? actor.email ?? null;
21
+ }
22
+ function formatWhen(value) {
23
+ if (!value)
24
+ return null;
25
+ const date = new Date(value);
26
+ if (Number.isNaN(date.valueOf()))
27
+ return null;
28
+ return new Intl.DateTimeFormat(undefined, {
29
+ dateStyle: "medium",
30
+ timeStyle: "short",
31
+ }).format(date);
32
+ }
33
+ function rolloutLabel(rules, t) {
34
+ if (rules.mode === "off")
35
+ return t("featureFlags.off");
36
+ if (rules.mode === "on")
37
+ return t("featureFlags.everyone");
38
+ const parts = [
39
+ rules.emails.length
40
+ ? t("featureFlags.emailCount", { count: rules.emails.length })
41
+ : null,
42
+ rules.orgIds.length
43
+ ? t("featureFlags.organizationCount", { count: rules.orgIds.length })
44
+ : null,
45
+ rules.percentage
46
+ ? t("featureFlags.percentageRollout", { count: rules.percentage })
47
+ : null,
48
+ ].filter(Boolean);
49
+ return parts.join(" · ") || t("featureFlags.inherited");
50
+ }
51
+ function audienceLabel(rules, t) {
52
+ if (rules.mode === "off")
53
+ return t("featureFlags.off");
54
+ if (rules.mode === "on")
55
+ return t("featureFlags.everyoneAudience");
56
+ return rolloutLabel(rules, t);
57
+ }
58
+ function modeLabel(rules, t) {
59
+ if (rules.mode === "off")
60
+ return t("featureFlags.off");
61
+ if (rules.mode === "on")
62
+ return t("featureFlags.everyone");
63
+ return t("featureFlags.targeted");
64
+ }
65
+ function listText(values) {
66
+ return values.join("\n");
67
+ }
68
+ function parseList(value) {
69
+ return [
70
+ ...new Set(value
71
+ .split(/[\n,]/)
72
+ .map((entry) => entry.trim())
73
+ .filter(Boolean)),
74
+ ];
75
+ }
76
+ function TargetingDialog({ flag, open, onOpenChange, onMutate, isPending, }) {
77
+ const t = useT();
78
+ const modeId = `feature-flag-${flag.key}-mode`;
79
+ const emailsId = `feature-flag-${flag.key}-emails`;
80
+ const orgIdsId = `feature-flag-${flag.key}-org-ids`;
81
+ const percentageId = `feature-flag-${flag.key}-percentage`;
82
+ const [mode, setMode] = useState(flag.rules.mode);
83
+ const [emails, setEmails] = useState(() => listText(flag.rules.emails));
84
+ const [orgIds, setOrgIds] = useState(() => listText(flag.rules.orgIds));
85
+ const [percentage, setPercentage] = useState(String(flag.rules.percentage));
86
+ const save = () => {
87
+ const nextPercentage = normalizeFeatureFlagPercentage(percentage);
88
+ onMutate({
89
+ key: flag.key,
90
+ operation: "replace-rules",
91
+ rules: {
92
+ version: 1,
93
+ mode,
94
+ emails: parseList(emails),
95
+ orgIds: parseList(orgIds),
96
+ percentage: nextPercentage,
97
+ },
98
+ });
99
+ };
100
+ return (_jsx(Dialog, { open: open, onOpenChange: onOpenChange, children: _jsxs(DialogContent, { className: "max-w-xl", children: [_jsxs(DialogHeader, { children: [_jsx(DialogTitle, { children: t("featureFlags.targetingTitle", {
101
+ name: flag.displayName ?? flag.key,
102
+ }) }), _jsx(DialogDescription, { children: t("featureFlags.targetingDescription") })] }), _jsxs("div", { className: "grid gap-2", children: [_jsx(Label, { htmlFor: modeId, children: t("featureFlags.modeLabel") }), _jsxs(Select, { value: mode, onValueChange: (value) => setMode(value), children: [_jsx(SelectTrigger, { id: modeId, children: _jsx(SelectValue, {}) }), _jsx(SelectContent, { children: _jsxs(SelectGroup, { children: [_jsx(SelectItem, { value: "off", children: t("featureFlags.off") }), _jsx(SelectItem, { value: "rules", children: t("featureFlags.targeted") }), _jsx(SelectItem, { value: "on", children: t("featureFlags.everyone") })] }) })] })] }), mode === "rules" ? (_jsxs("div", { className: "grid gap-4", children: [_jsxs("div", { className: "grid gap-2", children: [_jsx(Label, { htmlFor: emailsId, children: t("featureFlags.emailsLabel") }), _jsx(Textarea, { id: emailsId, className: "min-h-20", value: emails, onChange: (event) => setEmails(event.target.value), placeholder: "one@example.com" })] }), _jsxs("div", { className: "grid gap-2", children: [_jsx(Label, { htmlFor: orgIdsId, children: t("featureFlags.orgIdsLabel") }), _jsx(Textarea, { id: orgIdsId, className: "min-h-20", value: orgIds, onChange: (event) => setOrgIds(event.target.value), placeholder: "org_123" })] }), _jsxs("div", { className: "grid gap-2", children: [_jsx(Label, { htmlFor: percentageId, children: t("featureFlags.percentageLabel") }), _jsx(Input, { id: percentageId, type: "number", min: "0", max: "100", step: "1", value: percentage, onChange: (event) => setPercentage(event.target.value) })] }), _jsx("p", { className: "text-xs text-muted-foreground", children: t("featureFlags.targetingRuleHelp") })] })) : null, _jsxs("div", { className: "rounded-md bg-muted/50 px-3 py-2 text-sm", children: [t("featureFlags.targetingSummary", {
103
+ audience: audienceLabel(normalizeFeatureFlagRules({
104
+ mode,
105
+ emails: parseList(emails),
106
+ orgIds: parseList(orgIds),
107
+ percentage: normalizeFeatureFlagPercentage(percentage),
108
+ }), t),
109
+ }), _jsxs("span", { className: "ms-2 text-xs text-muted-foreground", children: ["\u00B7", " ", flag.defaultValue
110
+ ? t("featureFlags.defaultOn")
111
+ : t("featureFlags.defaultOff")] })] }), _jsxs(DialogFooter, { children: [_jsx(Button, { type: "button", variant: "ghost", onClick: () => onOpenChange(false), children: t("featureFlags.cancel") }), _jsxs(Button, { type: "button", disabled: isPending, onClick: save, children: [isPending ? _jsx(IconLoader2, { className: "animate-spin" }) : null, t("featureFlags.saveRules")] })] })] }) }));
112
+ }
113
+ function FeatureFlagRow({ flag, onMutate, isPending, error, }) {
114
+ const t = useT();
115
+ const [targetingOpen, setTargetingOpen] = useState(false);
116
+ const [disableOpen, setDisableOpen] = useState(false);
117
+ const actor = formatActor(flag.rules.updatedBy);
118
+ const when = formatWhen(flag.rules.updatedAt);
119
+ const metadata = [actor, when].filter(Boolean).join(" · ");
120
+ return (_jsxs("article", { id: `feature-flag-${flag.key}`, className: "grid gap-4 scroll-mt-24 border-b border-border py-5 last:border-b-0 md:grid-cols-[minmax(0,1fr)_auto] md:items-center", children: [_jsxs("div", { className: "min-w-0", children: [_jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [_jsx("h3", { className: "truncate text-sm font-medium text-foreground", children: flag.displayName ?? flag.key }), flag.displayName && flag.displayName !== flag.key ? (_jsx("code", { className: "truncate text-xs text-muted-foreground", children: flag.key })) : null, _jsx(Badge, { variant: flag.rules.mode === "on" ? "secondary" : "outline", className: "ms-auto shrink-0", children: modeLabel(flag.rules, t) })] }), flag.description ? (_jsx("p", { className: "mt-1 text-sm text-muted-foreground", children: flag.description })) : null, _jsxs("div", { className: "mt-3 flex flex-wrap gap-x-3 gap-y-1 text-xs text-muted-foreground", children: [_jsxs("span", { children: [t("featureFlags.enabledFor"), ": ", audienceLabel(flag.rules, t)] }), metadata ? (_jsx("span", { children: t("featureFlags.lastChanged", { metadata }) })) : null] }), _jsx("div", { className: "mt-2 flex items-center gap-1.5 text-xs font-medium text-foreground", children: flag.enabledForCurrentUser === true ? (_jsxs(_Fragment, { children: [_jsx(IconCheck, { className: "size-4 text-emerald-500" }), t("featureFlags.youHaveAccess")] })) : flag.enabledForCurrentUser === false ? (_jsx(_Fragment, { children: t("featureFlags.youDoNotHaveAccess") })) : (_jsx(_Fragment, { children: t("featureFlags.currentUserUnknown") })) }), error ? (_jsx("p", { className: "mt-3 text-sm text-destructive", children: t("featureFlags.mutationUnverified", {
121
+ name: flag.displayName ?? flag.key,
122
+ }) })) : null] }), _jsxs("div", { className: "flex flex-wrap items-center gap-2 md:justify-end", children: [_jsxs(Button, { type: "button", variant: "outline", size: "sm", className: "text-xs", disabled: isPending || flag.enabledForCurrentUser === true, onClick: () => onMutate({
123
+ key: flag.key,
124
+ operation: "enable-for-current-user",
125
+ }), children: [flag.enabledForCurrentUser === true ? (_jsx(IconCheck, {})) : (_jsx(IconUserCheck, {})), flag.enabledForCurrentUser === true
126
+ ? t("featureFlags.enabledForMe")
127
+ : t("featureFlags.enableForMe")] }), _jsxs(Button, { type: "button", variant: "outline", size: "sm", className: "text-xs", disabled: isPending, onClick: () => setTargetingOpen(true), children: [_jsx(IconSettings, {}), t("featureFlags.editTargeting")] }), _jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(Button, { type: "button", variant: "ghost", size: "icon", className: "size-8 text-muted-foreground", disabled: isPending, "aria-label": t("featureFlags.moreActions", {
128
+ name: flag.displayName ?? flag.key,
129
+ }), children: _jsx(IconDots, {}) }) }), _jsx(DropdownMenuContent, { align: "end", children: _jsx(DropdownMenuGroup, { children: _jsx(DropdownMenuItem, { className: "text-destructive focus:text-destructive", disabled: flag.rules.mode === "off", onSelect: () => setDisableOpen(true), children: t("featureFlags.disableForEveryone") }) }) })] })] }), targetingOpen ? (_jsx(TargetingDialog, { flag: flag, open: true, onOpenChange: setTargetingOpen, onMutate: onMutate, isPending: isPending })) : null, _jsx(AlertDialog, { open: disableOpen, onOpenChange: setDisableOpen, children: _jsxs(AlertDialogContent, { children: [_jsxs(AlertDialogHeader, { children: [_jsx(AlertDialogTitle, { children: t("featureFlags.disableForEveryoneTitle", {
130
+ name: flag.displayName ?? flag.key,
131
+ }) }), _jsx(AlertDialogDescription, { children: t("featureFlags.disableForEveryoneDescription") })] }), _jsxs(AlertDialogFooter, { children: [_jsx(AlertDialogCancel, { children: t("featureFlags.cancel") }), _jsx(AlertDialogAction, { className: "bg-destructive text-destructive-foreground hover:bg-destructive/90", onClick: () => onMutate({ key: flag.key, operation: "off" }), children: t("featureFlags.disableForEveryone") })] })] }) })] }));
132
+ }
133
+ export function FeatureFlagsEditor({ flags, onMutate, isPending, error, errorFlagKey, showHeader = true, }) {
134
+ const t = useT();
135
+ const sortedFlags = useMemo(() => flags
136
+ .map((flag) => ({
137
+ ...flag,
138
+ rules: normalizeFeatureFlagRules(flag.rules),
139
+ }))
140
+ .sort((left, right) => left.key.localeCompare(right.key)), [flags]);
141
+ return (_jsxs("section", { className: showHeader ? "mx-auto w-full max-w-2xl" : "mx-auto w-full max-w-4xl", "aria-labelledby": showHeader ? "feature-flags-title" : undefined, "aria-label": showHeader ? undefined : t("featureFlags.title"), children: [showHeader ? (_jsxs("header", { className: "border-b border-border pb-5", children: [_jsx("h2", { id: "feature-flags-title", className: "text-base font-semibold text-foreground", children: t("featureFlags.title") }), _jsx("p", { className: "mt-1 text-sm text-muted-foreground", children: t("featureFlags.description") })] })) : null, sortedFlags.length ? (_jsx("div", { children: sortedFlags.map((flag) => (_jsx(FeatureFlagRow, { flag: flag, onMutate: onMutate, isPending: isPending, error: errorFlagKey === flag.key ? error : null }, flag.key))) })) : (_jsx("p", { className: "py-8 text-sm text-muted-foreground", children: t("featureFlags.noFlags") })), error && !errorFlagKey ? (_jsx("p", { className: "pt-3 text-sm text-destructive", children: t("featureFlags.mutationUnverifiedGeneric") })) : null] }));
142
+ }
143
+ //# sourceMappingURL=FeatureFlagsPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeatureFlagsPanel.js","sourceRoot":"","sources":["../../../src/client/feature-flags/FeatureFlagsPanel.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n} from \"@agent-native/toolkit/ui/alert-dialog\";\nimport { Badge } from \"@agent-native/toolkit/ui/badge\";\nimport { Button } from \"@agent-native/toolkit/ui/button\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@agent-native/toolkit/ui/dropdown-menu\";\nimport { Input } from \"@agent-native/toolkit/ui/input\";\nimport { Label } from \"@agent-native/toolkit/ui/label\";\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@agent-native/toolkit/ui/select\";\nimport { Textarea } from \"@agent-native/toolkit/ui/textarea\";\nimport {\n IconCheck,\n IconDots,\n IconSettings,\n IconLoader2,\n IconUserCheck,\n} from \"@tabler/icons-react\";\nimport { useMemo, useState } from \"react\";\n\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from \"../components/ui/dialog.js\";\nimport { useT } from \"../i18n.js\";\nimport {\n normalizeFeatureFlagPercentage,\n normalizeFeatureFlagRules,\n} from \"./helpers.js\";\nimport type {\n FeatureFlagMetadata,\n FeatureFlagRules,\n SetFeatureFlagInput,\n} from \"./types.js\";\n\nfunction formatActor(actor: FeatureFlagRules[\"updatedBy\"]): string | null {\n if (!actor) return null;\n if (typeof actor === \"string\") return actor;\n return actor.name ?? actor.email ?? null;\n}\n\nfunction formatWhen(value: number | null | undefined): string | null {\n if (!value) return null;\n const date = new Date(value);\n if (Number.isNaN(date.valueOf())) return null;\n return new Intl.DateTimeFormat(undefined, {\n dateStyle: \"medium\",\n timeStyle: \"short\",\n }).format(date);\n}\n\nfunction rolloutLabel(\n rules: FeatureFlagRules,\n t: ReturnType<typeof useT>,\n): string {\n if (rules.mode === \"off\") return t(\"featureFlags.off\");\n if (rules.mode === \"on\") return t(\"featureFlags.everyone\");\n const parts = [\n rules.emails.length\n ? t(\"featureFlags.emailCount\", { count: rules.emails.length })\n : null,\n rules.orgIds.length\n ? t(\"featureFlags.organizationCount\", { count: rules.orgIds.length })\n : null,\n rules.percentage\n ? t(\"featureFlags.percentageRollout\", { count: rules.percentage })\n : null,\n ].filter(Boolean);\n return parts.join(\" · \") || t(\"featureFlags.inherited\");\n}\n\nfunction audienceLabel(\n rules: FeatureFlagRules,\n t: ReturnType<typeof useT>,\n): string {\n if (rules.mode === \"off\") return t(\"featureFlags.off\");\n if (rules.mode === \"on\") return t(\"featureFlags.everyoneAudience\");\n return rolloutLabel(rules, t);\n}\n\nfunction modeLabel(rules: FeatureFlagRules, t: ReturnType<typeof useT>) {\n if (rules.mode === \"off\") return t(\"featureFlags.off\");\n if (rules.mode === \"on\") return t(\"featureFlags.everyone\");\n return t(\"featureFlags.targeted\");\n}\n\nfunction listText(values: string[]): string {\n return values.join(\"\\n\");\n}\n\nfunction parseList(value: string): string[] {\n return [\n ...new Set(\n value\n .split(/[\\n,]/)\n .map((entry) => entry.trim())\n .filter(Boolean),\n ),\n ];\n}\n\nfunction TargetingDialog({\n flag,\n open,\n onOpenChange,\n onMutate,\n isPending,\n}: {\n flag: FeatureFlagMetadata;\n open: boolean;\n onOpenChange: (open: boolean) => void;\n onMutate: (input: SetFeatureFlagInput) => void;\n isPending?: boolean;\n}) {\n const t = useT();\n const modeId = `feature-flag-${flag.key}-mode`;\n const emailsId = `feature-flag-${flag.key}-emails`;\n const orgIdsId = `feature-flag-${flag.key}-org-ids`;\n const percentageId = `feature-flag-${flag.key}-percentage`;\n const [mode, setMode] = useState(flag.rules.mode);\n const [emails, setEmails] = useState(() => listText(flag.rules.emails));\n const [orgIds, setOrgIds] = useState(() => listText(flag.rules.orgIds));\n const [percentage, setPercentage] = useState(String(flag.rules.percentage));\n\n const save = () => {\n const nextPercentage = normalizeFeatureFlagPercentage(percentage);\n onMutate({\n key: flag.key,\n operation: \"replace-rules\",\n rules: {\n version: 1,\n mode,\n emails: parseList(emails),\n orgIds: parseList(orgIds),\n percentage: nextPercentage,\n },\n });\n };\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent className=\"max-w-xl\">\n <DialogHeader>\n <DialogTitle>\n {t(\"featureFlags.targetingTitle\", {\n name: flag.displayName ?? flag.key,\n })}\n </DialogTitle>\n <DialogDescription>\n {t(\"featureFlags.targetingDescription\")}\n </DialogDescription>\n </DialogHeader>\n <div className=\"grid gap-2\">\n <Label htmlFor={modeId}>{t(\"featureFlags.modeLabel\")}</Label>\n <Select\n value={mode}\n onValueChange={(value) =>\n setMode(value as FeatureFlagRules[\"mode\"])\n }\n >\n <SelectTrigger id={modeId}>\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectGroup>\n <SelectItem value=\"off\">{t(\"featureFlags.off\")}</SelectItem>\n <SelectItem value=\"rules\">\n {t(\"featureFlags.targeted\")}\n </SelectItem>\n <SelectItem value=\"on\">{t(\"featureFlags.everyone\")}</SelectItem>\n </SelectGroup>\n </SelectContent>\n </Select>\n </div>\n {mode === \"rules\" ? (\n <div className=\"grid gap-4\">\n <div className=\"grid gap-2\">\n <Label htmlFor={emailsId}>{t(\"featureFlags.emailsLabel\")}</Label>\n <Textarea\n id={emailsId}\n className=\"min-h-20\"\n value={emails}\n onChange={(event) => setEmails(event.target.value)}\n placeholder=\"one@example.com\"\n />\n </div>\n <div className=\"grid gap-2\">\n <Label htmlFor={orgIdsId}>{t(\"featureFlags.orgIdsLabel\")}</Label>\n <Textarea\n id={orgIdsId}\n className=\"min-h-20\"\n value={orgIds}\n onChange={(event) => setOrgIds(event.target.value)}\n placeholder=\"org_123\"\n />\n </div>\n <div className=\"grid gap-2\">\n <Label htmlFor={percentageId}>\n {t(\"featureFlags.percentageLabel\")}\n </Label>\n <Input\n id={percentageId}\n type=\"number\"\n min=\"0\"\n max=\"100\"\n step=\"1\"\n value={percentage}\n onChange={(event) => setPercentage(event.target.value)}\n />\n </div>\n <p className=\"text-xs text-muted-foreground\">\n {t(\"featureFlags.targetingRuleHelp\")}\n </p>\n </div>\n ) : null}\n <div className=\"rounded-md bg-muted/50 px-3 py-2 text-sm\">\n {t(\"featureFlags.targetingSummary\", {\n audience: audienceLabel(\n normalizeFeatureFlagRules({\n mode,\n emails: parseList(emails),\n orgIds: parseList(orgIds),\n percentage: normalizeFeatureFlagPercentage(percentage),\n }),\n t,\n ),\n })}\n <span className=\"ms-2 text-xs text-muted-foreground\">\n ·{\" \"}\n {flag.defaultValue\n ? t(\"featureFlags.defaultOn\")\n : t(\"featureFlags.defaultOff\")}\n </span>\n </div>\n <DialogFooter>\n <Button\n type=\"button\"\n variant=\"ghost\"\n onClick={() => onOpenChange(false)}\n >\n {t(\"featureFlags.cancel\")}\n </Button>\n <Button type=\"button\" disabled={isPending} onClick={save}>\n {isPending ? <IconLoader2 className=\"animate-spin\" /> : null}\n {t(\"featureFlags.saveRules\")}\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}\n\nfunction FeatureFlagRow({\n flag,\n onMutate,\n isPending,\n error,\n}: {\n flag: FeatureFlagMetadata;\n onMutate: (input: SetFeatureFlagInput) => void;\n isPending?: boolean;\n error?: Error | null;\n}) {\n const t = useT();\n const [targetingOpen, setTargetingOpen] = useState(false);\n const [disableOpen, setDisableOpen] = useState(false);\n const actor = formatActor(flag.rules.updatedBy);\n const when = formatWhen(flag.rules.updatedAt);\n const metadata = [actor, when].filter(Boolean).join(\" · \");\n\n return (\n <article\n id={`feature-flag-${flag.key}`}\n className=\"grid gap-4 scroll-mt-24 border-b border-border py-5 last:border-b-0 md:grid-cols-[minmax(0,1fr)_auto] md:items-center\"\n >\n <div className=\"min-w-0\">\n <div className=\"flex min-w-0 items-center gap-2\">\n <h3 className=\"truncate text-sm font-medium text-foreground\">\n {flag.displayName ?? flag.key}\n </h3>\n {flag.displayName && flag.displayName !== flag.key ? (\n <code className=\"truncate text-xs text-muted-foreground\">\n {flag.key}\n </code>\n ) : null}\n <Badge\n variant={flag.rules.mode === \"on\" ? \"secondary\" : \"outline\"}\n className=\"ms-auto shrink-0\"\n >\n {modeLabel(flag.rules, t)}\n </Badge>\n </div>\n {flag.description ? (\n <p className=\"mt-1 text-sm text-muted-foreground\">\n {flag.description}\n </p>\n ) : null}\n <div className=\"mt-3 flex flex-wrap gap-x-3 gap-y-1 text-xs text-muted-foreground\">\n <span>\n {t(\"featureFlags.enabledFor\")}: {audienceLabel(flag.rules, t)}\n </span>\n {metadata ? (\n <span>{t(\"featureFlags.lastChanged\", { metadata })}</span>\n ) : null}\n </div>\n <div className=\"mt-2 flex items-center gap-1.5 text-xs font-medium text-foreground\">\n {flag.enabledForCurrentUser === true ? (\n <>\n <IconCheck className=\"size-4 text-emerald-500\" />\n {t(\"featureFlags.youHaveAccess\")}\n </>\n ) : flag.enabledForCurrentUser === false ? (\n <>{t(\"featureFlags.youDoNotHaveAccess\")}</>\n ) : (\n <>{t(\"featureFlags.currentUserUnknown\")}</>\n )}\n </div>\n {error ? (\n <p className=\"mt-3 text-sm text-destructive\">\n {t(\"featureFlags.mutationUnverified\", {\n name: flag.displayName ?? flag.key,\n })}\n </p>\n ) : null}\n </div>\n <div className=\"flex flex-wrap items-center gap-2 md:justify-end\">\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"text-xs\"\n disabled={isPending || flag.enabledForCurrentUser === true}\n onClick={() =>\n onMutate({\n key: flag.key,\n operation: \"enable-for-current-user\",\n })\n }\n >\n {flag.enabledForCurrentUser === true ? (\n <IconCheck />\n ) : (\n <IconUserCheck />\n )}\n {flag.enabledForCurrentUser === true\n ? t(\"featureFlags.enabledForMe\")\n : t(\"featureFlags.enableForMe\")}\n </Button>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"text-xs\"\n disabled={isPending}\n onClick={() => setTargetingOpen(true)}\n >\n <IconSettings />\n {t(\"featureFlags.editTargeting\")}\n </Button>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n className=\"size-8 text-muted-foreground\"\n disabled={isPending}\n aria-label={t(\"featureFlags.moreActions\", {\n name: flag.displayName ?? flag.key,\n })}\n >\n <IconDots />\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\">\n <DropdownMenuGroup>\n <DropdownMenuItem\n className=\"text-destructive focus:text-destructive\"\n disabled={flag.rules.mode === \"off\"}\n onSelect={() => setDisableOpen(true)}\n >\n {t(\"featureFlags.disableForEveryone\")}\n </DropdownMenuItem>\n </DropdownMenuGroup>\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n {targetingOpen ? (\n <TargetingDialog\n flag={flag}\n open\n onOpenChange={setTargetingOpen}\n onMutate={onMutate}\n isPending={isPending}\n />\n ) : null}\n <AlertDialog open={disableOpen} onOpenChange={setDisableOpen}>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>\n {t(\"featureFlags.disableForEveryoneTitle\", {\n name: flag.displayName ?? flag.key,\n })}\n </AlertDialogTitle>\n <AlertDialogDescription>\n {t(\"featureFlags.disableForEveryoneDescription\")}\n </AlertDialogDescription>\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel>{t(\"featureFlags.cancel\")}</AlertDialogCancel>\n <AlertDialogAction\n className=\"bg-destructive text-destructive-foreground hover:bg-destructive/90\"\n onClick={() => onMutate({ key: flag.key, operation: \"off\" })}\n >\n {t(\"featureFlags.disableForEveryone\")}\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n </article>\n );\n}\n\nexport function FeatureFlagsEditor({\n flags,\n onMutate,\n isPending,\n error,\n errorFlagKey,\n showHeader = true,\n}: {\n flags: FeatureFlagMetadata[];\n onMutate: (input: SetFeatureFlagInput) => void;\n isPending?: boolean;\n error?: Error | null;\n errorFlagKey?: string | null;\n showHeader?: boolean;\n}) {\n const t = useT();\n const sortedFlags = useMemo(\n () =>\n flags\n .map((flag) => ({\n ...flag,\n rules: normalizeFeatureFlagRules(flag.rules),\n }))\n .sort((left, right) => left.key.localeCompare(right.key)),\n [flags],\n );\n\n return (\n <section\n className={\n showHeader ? \"mx-auto w-full max-w-2xl\" : \"mx-auto w-full max-w-4xl\"\n }\n aria-labelledby={showHeader ? \"feature-flags-title\" : undefined}\n aria-label={showHeader ? undefined : t(\"featureFlags.title\")}\n >\n {showHeader ? (\n <header className=\"border-b border-border pb-5\">\n <h2\n id=\"feature-flags-title\"\n className=\"text-base font-semibold text-foreground\"\n >\n {t(\"featureFlags.title\")}\n </h2>\n <p className=\"mt-1 text-sm text-muted-foreground\">\n {t(\"featureFlags.description\")}\n </p>\n </header>\n ) : null}\n {sortedFlags.length ? (\n <div>\n {sortedFlags.map((flag) => (\n <FeatureFlagRow\n key={flag.key}\n flag={flag}\n onMutate={onMutate}\n isPending={isPending}\n error={errorFlagKey === flag.key ? error : null}\n />\n ))}\n </div>\n ) : (\n <p className=\"py-8 text-sm text-muted-foreground\">\n {t(\"featureFlags.noFlags\")}\n </p>\n )}\n {error && !errorFlagKey ? (\n <p className=\"pt-3 text-sm text-destructive\">\n {t(\"featureFlags.mutationUnverifiedGeneric\")}\n </p>\n ) : null}\n </section>\n );\n}\n"]}
@@ -0,0 +1,16 @@
1
+ import type { FeatureFlagRules } from "./types.js";
2
+ export type EvaluatedFeatureFlags = Record<string, boolean> | {
3
+ flags?: Record<string, boolean>;
4
+ values?: Record<string, boolean>;
5
+ };
6
+ export declare function evaluatedFeatureFlagValues(result: EvaluatedFeatureFlags | undefined): Record<string, boolean>;
7
+ export declare function featureFlagValue(values: Record<string, boolean>, key: string): boolean;
8
+ export declare function normalizeFeatureFlagPercentage(value: unknown): number;
9
+ /**
10
+ * Keep the shared editor safe while a remote app is upgrading or returning an
11
+ * optimistic/transient rule envelope. The fleet contract still validates the
12
+ * authoritative response; this only prevents absent collection fields from
13
+ * crashing the operator UI between refreshes.
14
+ */
15
+ export declare function normalizeFeatureFlagRules(rules: Partial<FeatureFlagRules> | null | undefined): FeatureFlagRules;
16
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/client/feature-flags/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,MAAM,qBAAqB,GAC7B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC;AAE1E,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,qBAAqB,GAAG,SAAS,GACxC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAqBzB;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,GAAG,EAAE,MAAM,GACV,OAAO,CAET;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAKrE;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,IAAI,GAAG,SAAS,GAClD,gBAAgB,CAuBlB"}
@@ -0,0 +1,50 @@
1
+ export function evaluatedFeatureFlagValues(result) {
2
+ if (!result)
3
+ return {};
4
+ const envelope = result;
5
+ if (envelope.flags &&
6
+ typeof envelope.flags === "object" &&
7
+ !Array.isArray(envelope.flags)) {
8
+ return envelope.flags;
9
+ }
10
+ if (envelope.values &&
11
+ typeof envelope.values === "object" &&
12
+ !Array.isArray(envelope.values)) {
13
+ return envelope.values;
14
+ }
15
+ return result;
16
+ }
17
+ export function featureFlagValue(values, key) {
18
+ return values[key] === true;
19
+ }
20
+ export function normalizeFeatureFlagPercentage(value) {
21
+ const percentage = Number(value);
22
+ return Number.isFinite(percentage)
23
+ ? Math.floor(Math.max(0, Math.min(100, percentage)))
24
+ : 0;
25
+ }
26
+ /**
27
+ * Keep the shared editor safe while a remote app is upgrading or returning an
28
+ * optimistic/transient rule envelope. The fleet contract still validates the
29
+ * authoritative response; this only prevents absent collection fields from
30
+ * crashing the operator UI between refreshes.
31
+ */
32
+ export function normalizeFeatureFlagRules(rules) {
33
+ const mode = rules?.mode === "off" || rules?.mode === "on" || rules?.mode === "rules"
34
+ ? rules.mode
35
+ : "rules";
36
+ const percentage = normalizeFeatureFlagPercentage(rules?.percentage);
37
+ return {
38
+ ...rules,
39
+ version: 1,
40
+ mode,
41
+ emails: Array.isArray(rules?.emails)
42
+ ? rules.emails.filter((value) => typeof value === "string")
43
+ : [],
44
+ orgIds: Array.isArray(rules?.orgIds)
45
+ ? rules.orgIds.filter((value) => typeof value === "string")
46
+ : [],
47
+ percentage,
48
+ };
49
+ }
50
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/client/feature-flags/helpers.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,0BAA0B,CACxC,MAAyC;IAEzC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAG,MAGhB,CAAC;IACF,IACE,QAAQ,CAAC,KAAK;QACd,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ;QAClC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC9B,CAAC;QACD,OAAO,QAAQ,CAAC,KAAgC,CAAC;IACnD,CAAC;IACD,IACE,QAAQ,CAAC,MAAM;QACf,OAAO,QAAQ,CAAC,MAAM,KAAK,QAAQ;QACnC,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC/B,CAAC;QACD,OAAO,QAAQ,CAAC,MAAiC,CAAC;IACpD,CAAC;IACD,OAAO,MAAiC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,MAA+B,EAC/B,GAAW;IAEX,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,KAAc;IAC3D,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC;QAChC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC,CAAC;AACR,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAmD;IAEnD,MAAM,IAAI,GACR,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,KAAK,EAAE,IAAI,KAAK,IAAI,IAAI,KAAK,EAAE,IAAI,KAAK,OAAO;QACtE,CAAC,CAAC,KAAK,CAAC,IAAI;QACZ,CAAC,CAAC,OAAO,CAAC;IACd,MAAM,UAAU,GAAG,8BAA8B,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAErE,OAAO;QACL,GAAG,KAAK;QACR,OAAO,EAAE,CAAC;QACV,IAAI;QACJ,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;YAClC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CACjB,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CACtD;YACH,CAAC,CAAC,EAAE;QACN,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;YAClC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CACjB,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CACtD;YACH,CAAC,CAAC,EAAE;QACN,UAAU;KACX,CAAC;AACJ,CAAC","sourcesContent":["import type { FeatureFlagRules } from \"./types.js\";\n\nexport type EvaluatedFeatureFlags =\n | Record<string, boolean>\n | { flags?: Record<string, boolean>; values?: Record<string, boolean> };\n\nexport function evaluatedFeatureFlagValues(\n result: EvaluatedFeatureFlags | undefined,\n): Record<string, boolean> {\n if (!result) return {};\n const envelope = result as {\n flags?: unknown;\n values?: unknown;\n };\n if (\n envelope.flags &&\n typeof envelope.flags === \"object\" &&\n !Array.isArray(envelope.flags)\n ) {\n return envelope.flags as Record<string, boolean>;\n }\n if (\n envelope.values &&\n typeof envelope.values === \"object\" &&\n !Array.isArray(envelope.values)\n ) {\n return envelope.values as Record<string, boolean>;\n }\n return result as Record<string, boolean>;\n}\n\nexport function featureFlagValue(\n values: Record<string, boolean>,\n key: string,\n): boolean {\n return values[key] === true;\n}\n\nexport function normalizeFeatureFlagPercentage(value: unknown): number {\n const percentage = Number(value);\n return Number.isFinite(percentage)\n ? Math.floor(Math.max(0, Math.min(100, percentage)))\n : 0;\n}\n\n/**\n * Keep the shared editor safe while a remote app is upgrading or returning an\n * optimistic/transient rule envelope. The fleet contract still validates the\n * authoritative response; this only prevents absent collection fields from\n * crashing the operator UI between refreshes.\n */\nexport function normalizeFeatureFlagRules(\n rules: Partial<FeatureFlagRules> | null | undefined,\n): FeatureFlagRules {\n const mode =\n rules?.mode === \"off\" || rules?.mode === \"on\" || rules?.mode === \"rules\"\n ? rules.mode\n : \"rules\";\n const percentage = normalizeFeatureFlagPercentage(rules?.percentage);\n\n return {\n ...rules,\n version: 1,\n mode,\n emails: Array.isArray(rules?.emails)\n ? rules.emails.filter(\n (value): value is string => typeof value === \"string\",\n )\n : [],\n orgIds: Array.isArray(rules?.orgIds)\n ? rules.orgIds.filter(\n (value): value is string => typeof value === \"string\",\n )\n : [],\n percentage,\n };\n}\n"]}
@@ -0,0 +1,5 @@
1
+ export { FeatureFlagsEditor } from "./FeatureFlagsPanel.js";
2
+ export { evaluatedFeatureFlagValues, featureFlagValue, type EvaluatedFeatureFlags, } from "./helpers.js";
3
+ export { useFeatureFlag, useFeatureFlags } from "./use-feature-flag.js";
4
+ export type { FeatureFlagActor, FeatureFlagMetadata, FeatureFlagRules, SetFeatureFlagInput, } from "./types.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/feature-flags/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,EAChB,KAAK,qBAAqB,GAC3B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxE,YAAY,EACV,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { FeatureFlagsEditor } from "./FeatureFlagsPanel.js";
2
+ export { evaluatedFeatureFlagValues, featureFlagValue, } from "./helpers.js";
3
+ export { useFeatureFlag, useFeatureFlags } from "./use-feature-flag.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/feature-flags/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,GAEjB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC","sourcesContent":["export { FeatureFlagsEditor } from \"./FeatureFlagsPanel.js\";\nexport {\n evaluatedFeatureFlagValues,\n featureFlagValue,\n type EvaluatedFeatureFlags,\n} from \"./helpers.js\";\nexport { useFeatureFlag, useFeatureFlags } from \"./use-feature-flag.js\";\nexport type {\n FeatureFlagActor,\n FeatureFlagMetadata,\n FeatureFlagRules,\n SetFeatureFlagInput,\n} from \"./types.js\";\n"]}
@@ -0,0 +1,27 @@
1
+ export interface FeatureFlagActor {
2
+ name?: string | null;
3
+ email?: string | null;
4
+ }
5
+ export interface FeatureFlagMetadata {
6
+ key: string;
7
+ displayName?: string | null;
8
+ description?: string | null;
9
+ defaultValue: boolean;
10
+ rules: FeatureFlagRules;
11
+ enabledForCurrentUser?: boolean;
12
+ }
13
+ export interface FeatureFlagRules {
14
+ version?: 1;
15
+ mode: "off" | "on" | "rules";
16
+ emails: string[];
17
+ orgIds: string[];
18
+ percentage: number;
19
+ updatedAt?: number | null;
20
+ updatedBy?: FeatureFlagActor | string | null;
21
+ }
22
+ export interface SetFeatureFlagInput {
23
+ key: string;
24
+ operation: "off" | "enable-for-current-user" | "replace-rules";
25
+ rules?: FeatureFlagRules;
26
+ }
27
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/client/feature-flags/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,gBAAgB,CAAC;IACxB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,IAAI,EAAE,KAAK,GAAG,IAAI,GAAG,OAAO,CAAC;IAC7B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,gBAAgB,GAAG,MAAM,GAAG,IAAI,CAAC;CAC9C;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,KAAK,GAAG,yBAAyB,GAAG,eAAe,CAAC;IAC/D,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC1B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/client/feature-flags/types.ts"],"names":[],"mappings":"","sourcesContent":["export interface FeatureFlagActor {\n name?: string | null;\n email?: string | null;\n}\n\nexport interface FeatureFlagMetadata {\n key: string;\n displayName?: string | null;\n description?: string | null;\n defaultValue: boolean;\n rules: FeatureFlagRules;\n enabledForCurrentUser?: boolean;\n}\n\nexport interface FeatureFlagRules {\n version?: 1;\n mode: \"off\" | \"on\" | \"rules\";\n emails: string[];\n orgIds: string[];\n percentage: number;\n updatedAt?: number | null;\n updatedBy?: FeatureFlagActor | string | null;\n}\n\nexport interface SetFeatureFlagInput {\n key: string;\n operation: \"off\" | \"enable-for-current-user\" | \"replace-rules\";\n rules?: FeatureFlagRules;\n}\n"]}
@@ -0,0 +1,8 @@
1
+ export type { EvaluatedFeatureFlags } from "./helpers.js";
2
+ /**
3
+ * Returns the current user's evaluated value for a registered feature flag.
4
+ * Flags that have not been registered evaluate to false.
5
+ */
6
+ export declare function useFeatureFlag(key: string): boolean;
7
+ export declare function useFeatureFlags(): Record<string, boolean>;
8
+ //# sourceMappingURL=use-feature-flag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-feature-flag.d.ts","sourceRoot":"","sources":["../../../src/client/feature-flags/use-feature-flag.ts"],"names":[],"mappings":"AAOA,YAAY,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE1D;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAKnD;AAED,wBAAgB,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKzD"}
@@ -0,0 +1,15 @@
1
+ import { useActionQuery } from "../use-action.js";
2
+ import { evaluatedFeatureFlagValues, featureFlagValue, } from "./helpers.js";
3
+ /**
4
+ * Returns the current user's evaluated value for a registered feature flag.
5
+ * Flags that have not been registered evaluate to false.
6
+ */
7
+ export function useFeatureFlag(key) {
8
+ const query = useActionQuery("get-feature-flags");
9
+ return featureFlagValue(evaluatedFeatureFlagValues(query.data), key);
10
+ }
11
+ export function useFeatureFlags() {
12
+ const query = useActionQuery("get-feature-flags");
13
+ return evaluatedFeatureFlagValues(query.data);
14
+ }
15
+ //# sourceMappingURL=use-feature-flag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-feature-flag.js","sourceRoot":"","sources":["../../../src/client/feature-flags/use-feature-flag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EACL,0BAA0B,EAC1B,gBAAgB,GAEjB,MAAM,cAAc,CAAC;AAItB;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,MAAM,KAAK,GAAG,cAAc,CAC1B,mBAA4B,CAC7B,CAAC;IACF,OAAO,gBAAgB,CAAC,0BAA0B,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,KAAK,GAAG,cAAc,CAC1B,mBAA4B,CAC7B,CAAC;IACF,OAAO,0BAA0B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC","sourcesContent":["import { useActionQuery } from \"../use-action.js\";\nimport {\n evaluatedFeatureFlagValues,\n featureFlagValue,\n type EvaluatedFeatureFlags,\n} from \"./helpers.js\";\n\nexport type { EvaluatedFeatureFlags } from \"./helpers.js\";\n\n/**\n * Returns the current user's evaluated value for a registered feature flag.\n * Flags that have not been registered evaluate to false.\n */\nexport function useFeatureFlag(key: string): boolean {\n const query = useActionQuery<EvaluatedFeatureFlags>(\n \"get-feature-flags\" as never,\n );\n return featureFlagValue(evaluatedFeatureFlagValues(query.data), key);\n}\n\nexport function useFeatureFlags(): Record<string, boolean> {\n const query = useActionQuery<EvaluatedFeatureFlags>(\n \"get-feature-flags\" as never,\n );\n return evaluatedFeatureFlagValues(query.data);\n}\n"]}
@@ -74,6 +74,7 @@ export * from "./chat/runtime.js";
74
74
  export { ACTION_CHAT_UI_DATA_CHART_RENDERER, ACTION_CHAT_UI_DATA_INSIGHTS_RENDERER, ACTION_CHAT_UI_DATA_TABLE_RENDERER, ACTION_CHAT_UI_DATA_WIDGET_RENDERER, ACTION_CHAT_UI_INLINE_EXTENSION_RENDERER, type ActionChatUIConfig, } from "../action-ui.js";
75
75
  export { DATA_CHART_WIDGET, DATA_INSIGHTS_WIDGET, DATA_TABLE_WIDGET, createDataChartWidgetResult, createDataInsightsWidgetResult, createDataTableWidgetResult, dataChartWidgetResultSchema, dataChartWidgetSchema, dataInsightsWidgetResultSchema, dataTableWidgetResultSchema, dataTableWidgetSchema, dataWidgetResultSchema, isDataChartWidget, isDataTableWidget, isDataWidgetResult, normalizeDataWidgetKind, normalizeDataWidgetResult, type DataChartSeriesDefinition, type DataChartWidget, type DataChartWidgetResult, type DataChartWidgetResultInput, type DataInsightsWidgetResult, type DataInsightsWidgetResultInput, type DataTableColumn, type DataTableWidget, type DataTableWidgetResult, type DataTableWidgetResultInput, type DataWidgetDisplay, type DataWidgetKind, type DataWidgetResult, type DataWidgetResultMetadata, } from "./chat/widgets/data-widget-types.js";
76
76
  export { AgentNativeIcon } from "./components/icons/AgentNativeIcon.js";
77
+ export { FeatureFlagsEditor, evaluatedFeatureFlagValues, featureFlagValue, useFeatureFlag, useFeatureFlags, type FeatureFlagActor, type FeatureFlagMetadata, type FeatureFlagRules, type SetFeatureFlagInput, } from "./feature-flags/index.js";
77
78
  export { SettingsPanel, SettingsTabsPage, SecretsSection, getAgentSettingsSearchTabs, openBuilderConnectPopup, useAgentSettingsTabs, useBuilderConnectFlow, useBuilderStatus, withBuilderConnectTrackingParams, type BuilderConnectFlow, type BuilderConnectFlowOptions, type BuilderConnectStartOptions, type BuilderStatus, type AgentSettingsSearchTab, type OpenBuilderConnectPopupOptions, type SecretsSectionProps, type SettingsPanelProps, type SettingsSearchEntry, type SettingsTabItem, type SettingsTabsPageProps, } from "./settings/index.js";
78
79
  export { Turnstile, type TurnstileProps } from "./Turnstile.js";
79
80
  export { OpenSourceBadge, PoweredByBadge, type OpenSourceBadgeProps, type PoweredByBadgeProps, } from "./PoweredByBadge.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
@@ -90,6 +90,7 @@ export * from "./chat/runtime.js";
90
90
  export { ACTION_CHAT_UI_DATA_CHART_RENDERER, ACTION_CHAT_UI_DATA_INSIGHTS_RENDERER, ACTION_CHAT_UI_DATA_TABLE_RENDERER, ACTION_CHAT_UI_DATA_WIDGET_RENDERER, ACTION_CHAT_UI_INLINE_EXTENSION_RENDERER, } from "../action-ui.js";
91
91
  export { DATA_CHART_WIDGET, DATA_INSIGHTS_WIDGET, DATA_TABLE_WIDGET, createDataChartWidgetResult, createDataInsightsWidgetResult, createDataTableWidgetResult, dataChartWidgetResultSchema, dataChartWidgetSchema, dataInsightsWidgetResultSchema, dataTableWidgetResultSchema, dataTableWidgetSchema, dataWidgetResultSchema, isDataChartWidget, isDataTableWidget, isDataWidgetResult, normalizeDataWidgetKind, normalizeDataWidgetResult, } from "./chat/widgets/data-widget-types.js";
92
92
  export { AgentNativeIcon } from "./components/icons/AgentNativeIcon.js";
93
+ export { FeatureFlagsEditor, evaluatedFeatureFlagValues, featureFlagValue, useFeatureFlag, useFeatureFlags, } from "./feature-flags/index.js";
93
94
  export { SettingsPanel, SettingsTabsPage, SecretsSection, getAgentSettingsSearchTabs, openBuilderConnectPopup, useAgentSettingsTabs, useBuilderConnectFlow, useBuilderStatus, withBuilderConnectTrackingParams, } from "./settings/index.js";
94
95
  export { Turnstile } from "./Turnstile.js";
95
96
  export { OpenSourceBadge, PoweredByBadge, } from "./PoweredByBadge.js";