@stigmer/react 3.0.5 → 3.0.6

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 (80) hide show
  1. package/agent/AgentDetailView.d.ts.map +1 -1
  2. package/agent/AgentDetailView.js +1 -1
  3. package/agent/AgentDetailView.js.map +1 -1
  4. package/agent-instance/AgentInstanceDetailPanel.d.ts.map +1 -1
  5. package/agent-instance/AgentInstanceDetailPanel.js +2 -6
  6. package/agent-instance/AgentInstanceDetailPanel.js.map +1 -1
  7. package/agent-instance/AgentInstanceList.d.ts.map +1 -1
  8. package/agent-instance/AgentInstanceList.js +2 -6
  9. package/agent-instance/AgentInstanceList.js.map +1 -1
  10. package/index.d.ts +2 -2
  11. package/index.d.ts.map +1 -1
  12. package/index.js +1 -1
  13. package/index.js.map +1 -1
  14. package/library/InstanceVisibilitySelector.d.ts +8 -15
  15. package/library/InstanceVisibilitySelector.d.ts.map +1 -1
  16. package/library/InstanceVisibilitySelector.js +11 -139
  17. package/library/InstanceVisibilitySelector.js.map +1 -1
  18. package/library/ResourceVisibilityControl.d.ts +23 -6
  19. package/library/ResourceVisibilityControl.d.ts.map +1 -1
  20. package/library/ResourceVisibilityControl.js +38 -9
  21. package/library/ResourceVisibilityControl.js.map +1 -1
  22. package/library/ScopeToggle.d.ts +1 -1
  23. package/library/ScopeToggle.js +1 -1
  24. package/library/VisibilitySelector.d.ts +75 -0
  25. package/library/VisibilitySelector.d.ts.map +1 -0
  26. package/library/VisibilitySelector.js +171 -0
  27. package/library/VisibilitySelector.js.map +1 -0
  28. package/library/index.d.ts +4 -2
  29. package/library/index.d.ts.map +1 -1
  30. package/library/index.js +2 -1
  31. package/library/index.js.map +1 -1
  32. package/library/useUpdateVisibility.d.ts +5 -4
  33. package/library/useUpdateVisibility.d.ts.map +1 -1
  34. package/library/useUpdateVisibility.js +5 -4
  35. package/library/useUpdateVisibility.js.map +1 -1
  36. package/library/visibilityLevels.d.ts +74 -0
  37. package/library/visibilityLevels.d.ts.map +1 -0
  38. package/library/visibilityLevels.js +91 -0
  39. package/library/visibilityLevels.js.map +1 -0
  40. package/mcp-server/McpServerDetailView.d.ts +1 -11
  41. package/mcp-server/McpServerDetailView.d.ts.map +1 -1
  42. package/mcp-server/McpServerDetailView.js +3 -6
  43. package/mcp-server/McpServerDetailView.js.map +1 -1
  44. package/package.json +4 -4
  45. package/resource-detail/types.d.ts +1 -1
  46. package/skill/SkillDetailView.d.ts.map +1 -1
  47. package/skill/SkillDetailView.js +1 -1
  48. package/skill/SkillDetailView.js.map +1 -1
  49. package/src/agent/AgentDetailView.tsx +1 -0
  50. package/src/agent-instance/AgentInstanceDetailPanel.tsx +2 -7
  51. package/src/agent-instance/AgentInstanceList.tsx +2 -7
  52. package/src/index.ts +8 -2
  53. package/src/library/InstanceVisibilitySelector.tsx +19 -276
  54. package/src/library/ResourceVisibilityControl.tsx +54 -8
  55. package/src/library/ScopeToggle.tsx +1 -1
  56. package/src/library/VisibilitySelector.tsx +393 -0
  57. package/src/library/index.ts +13 -2
  58. package/src/library/useUpdateVisibility.ts +5 -4
  59. package/src/library/visibilityLevels.ts +144 -0
  60. package/src/mcp-server/McpServerDetailView.tsx +10 -35
  61. package/src/resource-detail/types.ts +1 -1
  62. package/src/skill/SkillDetailView.tsx +1 -0
  63. package/src/workflow/WorkflowDetailView.tsx +1 -0
  64. package/src/workflow/instance/WorkflowInstanceDetailPanel.tsx +2 -7
  65. package/src/workflow/instance/WorkflowInstanceList.tsx +2 -7
  66. package/styles.css +1 -1
  67. package/workflow/WorkflowDetailView.d.ts.map +1 -1
  68. package/workflow/WorkflowDetailView.js +1 -1
  69. package/workflow/WorkflowDetailView.js.map +1 -1
  70. package/workflow/instance/WorkflowInstanceDetailPanel.d.ts.map +1 -1
  71. package/workflow/instance/WorkflowInstanceDetailPanel.js +2 -6
  72. package/workflow/instance/WorkflowInstanceDetailPanel.js.map +1 -1
  73. package/workflow/instance/WorkflowInstanceList.d.ts.map +1 -1
  74. package/workflow/instance/WorkflowInstanceList.js +2 -6
  75. package/workflow/instance/WorkflowInstanceList.js.map +1 -1
  76. package/library/VisibilityToggle.d.ts +0 -53
  77. package/library/VisibilityToggle.d.ts.map +0 -1
  78. package/library/VisibilityToggle.js +0 -100
  79. package/library/VisibilityToggle.js.map +0 -1
  80. package/src/library/VisibilityToggle.tsx +0 -280
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stigmer/react",
3
- "version": "3.0.5",
3
+ "version": "3.0.6",
4
4
  "description": "React provider and client hook for the Stigmer platform SDK",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -37,7 +37,7 @@
37
37
  "dependencies": {
38
38
  "@bufbuild/protovalidate": "^1.1.1",
39
39
  "@dagrejs/dagre": "^1.1.4",
40
- "@stigmer/theme": "3.0.5",
40
+ "@stigmer/theme": "3.0.6",
41
41
  "diff": "^8.0.3",
42
42
  "fflate": "^0.8.2",
43
43
  "react-markdown": "^10.1.0",
@@ -49,8 +49,8 @@
49
49
  "peerDependencies": {
50
50
  "@base-ui/react": "^1.0.0",
51
51
  "@bufbuild/protobuf": "^2.8.0",
52
- "@stigmer/protos": "3.0.5",
53
- "@stigmer/sdk": "3.0.5",
52
+ "@stigmer/protos": "3.0.6",
53
+ "@stigmer/sdk": "3.0.6",
54
54
  "@tanstack/react-table": "^8.20.0",
55
55
  "@xyflow/react": "^12.0.0",
56
56
  "elkjs": "^0.9.0",
@@ -124,7 +124,7 @@ export interface ResourceDetailShellProps {
124
124
  readonly header: ResourceHeaderMeta;
125
125
  /**
126
126
  * Visibility control rendered in the header.
127
- * Typically a `<VisibilityToggle />` from the library module.
127
+ * Typically a `<ResourceVisibilityControl />` from the library module.
128
128
  * Rendered inline after the resource name.
129
129
  */
130
130
  readonly visibilityControl?: ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"SkillDetailView.d.ts","sourceRoot":"","sources":["../../src/skill/SkillDetailView.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oDAAoD,CAAC;AAWhF,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAsB,MAAM,0BAA0B,CAAC;AAYhG,yCAAyC;AACzC,MAAM,WAAW,oBAAoB;IACnC,6CAA6C;IAC7C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;;OAOG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACvE;;OAEG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC;IACtC;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACnD;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACpD,qDAAqD;IACrD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,eAAe,CAAC,EAC9B,GAAG,EACH,IAAI,EACJ,OAAO,EACP,cAAc,EACd,aAAa,EACb,OAAO,EACP,cAAc,EACd,SAAS,EACT,WAAW,EACX,UAAU,EACV,eAAe,EACf,QAAgB,EAChB,iBAAiB,EACjB,SAAS,GACV,EAAE,oBAAoB,2CA8HtB"}
1
+ {"version":3,"file":"SkillDetailView.d.ts","sourceRoot":"","sources":["../../src/skill/SkillDetailView.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oDAAoD,CAAC;AAWhF,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAsB,MAAM,0BAA0B,CAAC;AAYhG,yCAAyC;AACzC,MAAM,WAAW,oBAAoB;IACnC,6CAA6C;IAC7C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;;OAOG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACvE;;OAEG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC;IACtC;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACnD;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACpD,qDAAqD;IACrD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,eAAe,CAAC,EAC9B,GAAG,EACH,IAAI,EACJ,OAAO,EACP,cAAc,EACd,aAAa,EACb,OAAO,EACP,cAAc,EACd,SAAS,EACT,WAAW,EACX,UAAU,EACV,eAAe,EACf,QAAgB,EAChB,iBAAiB,EACjB,SAAS,GACV,EAAE,oBAAoB,2CA+HtB"}
@@ -103,7 +103,7 @@ export function SkillDetailView({ org, slug, version, onResourceLoad, primaryAct
103
103
  status: status ? skillStateToPhase(status.state) : undefined,
104
104
  statusLabel: status ? skillStateLabel(status.state) : undefined,
105
105
  };
106
- const visibilityControl = meta ? (_jsx(ResourceVisibilityControl, { kind: "skill", resourceId: meta.id, visibility: meta.visibility, onChanged: refetch })) : undefined;
106
+ const visibilityControl = meta ? (_jsx(ResourceVisibilityControl, { kind: "skill", resourceId: meta.id, visibility: meta.visibility, org: meta.org || org, onChanged: refetch })) : undefined;
107
107
  let tabContent;
108
108
  if (activeAdditionalTab) {
109
109
  tabContent = activeAdditionalTab.content;
@@ -1 +1 @@
1
- {"version":3,"file":"SkillDetailView.js","sourceRoot":"","sources":["../../src/skill/SkillDetailView.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SkillDetailView.js","sourceRoot":"","sources":["../../src/skill/SkillDetailView.tsx"],"names":[],"mappings":"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"}
@@ -317,6 +317,7 @@ export function AgentDetailView({
317
317
  kind="agent"
318
318
  resourceId={meta.id}
319
319
  visibility={meta.visibility}
320
+ org={meta.org || org}
320
321
  onChanged={refetch}
321
322
  />
322
323
  ) : undefined;
@@ -12,6 +12,7 @@ import { useUpdateAgentInstance } from "./useUpdateAgentInstance";
12
12
  import { useDeleteAgentInstance } from "./useDeleteAgentInstance";
13
13
  import { useUpdateVisibility } from "../library/useUpdateVisibility";
14
14
  import { InstanceVisibilitySelector } from "../library/InstanceVisibilitySelector";
15
+ import { visibilityLabel } from "../library/visibilityLevels";
15
16
  import { PermissionGate } from "../iam-policy/PermissionGate";
16
17
  import { SharePanel } from "../iam-policy/SharePanel";
17
18
  import { EnvironmentPicker } from "../environment/EnvironmentPicker";
@@ -259,7 +260,7 @@ export function AgentInstanceDetailPanel({
259
260
  relation="can_edit"
260
261
  fallback={
261
262
  <span className="text-sm text-foreground">
262
- {VISIBILITY_LABELS[meta?.visibility ?? 0] ?? "Private"}
263
+ {visibilityLabel(meta?.visibility ?? ApiResourceVisibility.visibility_private)}
263
264
  </span>
264
265
  }
265
266
  >
@@ -344,12 +345,6 @@ export function AgentInstanceDetailPanel({
344
345
  );
345
346
  }
346
347
 
347
- const VISIBILITY_LABELS: Record<number, string> = {
348
- [ApiResourceVisibility.visibility_private]: "Private",
349
- [ApiResourceVisibility.visibility_org]: "Organization",
350
- [ApiResourceVisibility.visibility_public]: "Public",
351
- };
352
-
353
348
  function CloseIcon() {
354
349
  return (
355
350
  <svg width="14" height="14" viewBox="0 0 14 14" fill="none" aria-hidden="true">
@@ -8,6 +8,7 @@ import { useAgentInstances } from "./useAgentInstances";
8
8
  import { useEnvironmentList } from "../environment/useEnvironmentList";
9
9
  import { useUpdateVisibility } from "../library/useUpdateVisibility";
10
10
  import { InstanceVisibilitySelector } from "../library/InstanceVisibilitySelector";
11
+ import { visibilityLabel } from "../library/visibilityLevels";
11
12
  import { PermissionGate } from "../iam-policy/PermissionGate";
12
13
  import { AgentInstanceEmptyState } from "./AgentInstanceEmptyState";
13
14
 
@@ -250,7 +251,7 @@ function InstanceRow({
250
251
  relation="can_edit"
251
252
  fallback={
252
253
  <span className="text-xs text-muted-foreground">
253
- {VISIBILITY_LABELS[meta?.visibility ?? 0] ?? "Private"}
254
+ {visibilityLabel(meta?.visibility ?? ApiResourceVisibility.visibility_private)}
254
255
  </span>
255
256
  }
256
257
  >
@@ -304,12 +305,6 @@ function InstanceRow({
304
305
  );
305
306
  }
306
307
 
307
- const VISIBILITY_LABELS: Record<number, string> = {
308
- [ApiResourceVisibility.visibility_private]: "Private",
309
- [ApiResourceVisibility.visibility_org]: "Organization",
310
- [ApiResourceVisibility.visibility_public]: "Public",
311
- };
312
-
313
308
  function LoadingSkeleton() {
314
309
  return (
315
310
  <div className="space-y-2 py-4">
package/src/index.ts CHANGED
@@ -853,7 +853,11 @@ export {
853
853
  useExportResource,
854
854
  useImportResource,
855
855
  ImportResourceDialog,
856
- VisibilityToggle,
856
+ VisibilitySelector,
857
+ VisibilityBadge,
858
+ blueprintVisibilityLevels,
859
+ INSTANCE_VISIBILITY_LEVELS,
860
+ visibilityLabel,
857
861
  useUpdateVisibility,
858
862
  } from "./library";
859
863
  export type {
@@ -873,7 +877,9 @@ export type {
873
877
  ImportPreview,
874
878
  UseImportResourceReturn,
875
879
  ImportResourceDialogProps,
876
- VisibilityToggleProps,
880
+ VisibilitySelectorProps,
881
+ VisibilityLevelOption,
882
+ BlueprintVisibilityLevelsContext,
877
883
  VisibilityResourceKind,
878
884
  UseUpdateVisibilityReturn,
879
885
  } from "./library";
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
 
3
- import { useCallback, useRef, useState } from "react";
4
- import { cn } from "@stigmer/theme";
5
- import { ApiResourceVisibility } from "@stigmer/protos/ai/stigmer/commons/apiresource/enum_pb";
3
+ import type { ApiResourceVisibility } from "@stigmer/protos/ai/stigmer/commons/apiresource/enum_pb";
4
+ import { VisibilitySelector } from "./VisibilitySelector";
5
+ import { INSTANCE_VISIBILITY_LEVELS } from "./visibilityLevels";
6
6
 
7
7
  /** Props for {@link InstanceVisibilitySelector}. */
8
8
  export interface InstanceVisibilitySelectorProps {
@@ -21,44 +21,15 @@ export interface InstanceVisibilitySelectorProps {
21
21
  readonly className?: string;
22
22
  }
23
23
 
24
- const OPTIONS: readonly {
25
- readonly value: ApiResourceVisibility;
26
- readonly label: string;
27
- readonly description: string;
28
- }[] = [
29
- {
30
- value: ApiResourceVisibility.visibility_private,
31
- label: "Private",
32
- description: "Only you can access",
33
- },
34
- {
35
- value: ApiResourceVisibility.visibility_org,
36
- label: "Organization",
37
- description: "All org members can view executions",
38
- },
39
- {
40
- value: ApiResourceVisibility.visibility_public,
41
- label: "Public",
42
- description: "All authenticated users can view",
43
- },
44
- ];
45
-
46
24
  /**
47
- * Three-state visibility selector for instances (AgentInstance,
48
- * WorkflowInstance).
49
- *
50
- * Unlike the binary {@link VisibilityToggle} used for blueprints,
51
- * instances support the full visibility spectrum: Private, Organization,
52
- * and Public. Escalating visibility (private -> org, or any -> public)
53
- * shows an inline confirmation prompt since expanding access is
54
- * consequential.
55
- *
56
- * For workflow instances, ORG visibility has cascading effects:
57
- * all org members automatically see all executions via FGA
58
- * inheritance (zero per-execution tuples needed).
25
+ * Visibility selector for instances (AgentInstance, WorkflowInstance):
26
+ * {@link VisibilitySelector} preconfigured with the instance level set
27
+ * (Private / Organization / Public — platform is excluded by design to
28
+ * preserve tenant isolation).
59
29
  *
60
- * WAI-ARIA Radio Group with roving tabindex. All visual properties
61
- * flow through `--stgm-*` design tokens.
30
+ * For workflow instances, ORG visibility has cascading effects: all org
31
+ * members automatically see all executions via FGA inheritance (zero
32
+ * per-execution tuples needed).
62
33
  *
63
34
  * @example
64
35
  * ```tsx
@@ -81,243 +52,15 @@ export function InstanceVisibilitySelector({
81
52
  disabled = false,
82
53
  className,
83
54
  }: InstanceVisibilitySelectorProps) {
84
- const [confirming, setConfirming] = useState<ApiResourceVisibility | null>(
85
- null,
86
- );
87
- const optionRefs = useRef<(HTMLButtonElement | null)[]>([]);
88
- const effectivelyDisabled = disabled || isPending;
89
-
90
- const isEscalation = useCallback(
91
- (target: ApiResourceVisibility) => {
92
- const order = [
93
- ApiResourceVisibility.visibility_private,
94
- ApiResourceVisibility.visibility_org,
95
- ApiResourceVisibility.visibility_public,
96
- ];
97
- return order.indexOf(target) > order.indexOf(visibility);
98
- },
99
- [visibility],
100
- );
101
-
102
- const handleSelect = useCallback(
103
- (value: ApiResourceVisibility) => {
104
- if (value === visibility) return;
105
-
106
- if (isEscalation(value)) {
107
- setConfirming(value);
108
- return;
109
- }
110
-
111
- onVisibilityChange(value);
112
- },
113
- [visibility, onVisibilityChange, isEscalation],
114
- );
115
-
116
- const confirmChange = useCallback(() => {
117
- if (confirming === null) return;
118
- setConfirming(null);
119
- onVisibilityChange(confirming);
120
- }, [confirming, onVisibilityChange]);
121
-
122
- const cancelConfirm = useCallback(() => {
123
- setConfirming(null);
124
- }, []);
125
-
126
- const handleKeyDown = useCallback(
127
- (e: React.KeyboardEvent<HTMLButtonElement>, index: number) => {
128
- let nextIndex: number | null = null;
129
-
130
- if (e.key === "ArrowRight" || e.key === "ArrowDown") {
131
- e.preventDefault();
132
- nextIndex = (index + 1) % OPTIONS.length;
133
- } else if (e.key === "ArrowLeft" || e.key === "ArrowUp") {
134
- e.preventDefault();
135
- nextIndex = (index - 1 + OPTIONS.length) % OPTIONS.length;
136
- }
137
-
138
- if (nextIndex !== null) {
139
- optionRefs.current[nextIndex]?.focus();
140
- handleSelect(OPTIONS[nextIndex].value);
141
- }
142
- },
143
- [handleSelect],
144
- );
145
-
146
- const confirmingOption = confirming
147
- ? OPTIONS.find((o) => o.value === confirming)
148
- : null;
149
-
150
- return (
151
- <div className={cn("inline-flex flex-col gap-1.5", className)}>
152
- <div
153
- role="radiogroup"
154
- aria-label="Instance visibility"
155
- aria-disabled={effectivelyDisabled || undefined}
156
- className={cn(
157
- "inline-flex rounded-md bg-muted p-0.5",
158
- effectivelyDisabled && "pointer-events-none opacity-50",
159
- )}
160
- >
161
- {OPTIONS.map((option, index) => {
162
- const isSelected = visibility === option.value;
163
-
164
- return (
165
- <button
166
- key={option.value}
167
- ref={(el) => {
168
- optionRefs.current[index] = el;
169
- }}
170
- type="button"
171
- role="radio"
172
- aria-checked={isSelected}
173
- aria-label={`${option.label}: ${option.description}`}
174
- tabIndex={isSelected ? 0 : -1}
175
- disabled={effectivelyDisabled}
176
- onClick={() => handleSelect(option.value)}
177
- onKeyDown={(e) => handleKeyDown(e, index)}
178
- className={cn(
179
- "inline-flex cursor-pointer items-center gap-1 rounded-sm px-2.5 py-1 text-xs font-medium transition-colors",
180
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
181
- isSelected
182
- ? getSelectedStyle(option.value)
183
- : "text-muted-foreground hover:text-foreground",
184
- )}
185
- >
186
- {isPending && isSelected ? (
187
- <span
188
- className="inline-block size-3 animate-spin rounded-full border-2 border-current border-t-transparent"
189
- aria-hidden="true"
190
- />
191
- ) : (
192
- getIcon(option.value)
193
- )}
194
- {option.label}
195
- </button>
196
- );
197
- })}
198
- </div>
199
-
200
- {/* Description of current state */}
201
- {!confirming && (
202
- <p className="text-[0.65rem] text-muted-foreground">
203
- {OPTIONS.find((o) => o.value === visibility)?.description}
204
- </p>
205
- )}
206
-
207
- {/* Confirmation prompt for escalation */}
208
- {confirming !== null && confirmingOption && (
209
- <div
210
- className={cn(
211
- "flex items-center gap-2 rounded-md border px-3 py-1.5 text-xs",
212
- confirming === ApiResourceVisibility.visibility_public
213
- ? "border-amber-200 bg-amber-50 dark:border-amber-800/50 dark:bg-amber-950/30"
214
- : "border-blue-200 bg-blue-50 dark:border-blue-800/50 dark:bg-blue-950/30",
215
- )}
216
- role="alert"
217
- >
218
- <span
219
- className={cn(
220
- confirming === ApiResourceVisibility.visibility_public
221
- ? "text-amber-800 dark:text-amber-200"
222
- : "text-blue-800 dark:text-blue-200",
223
- )}
224
- >
225
- {confirming === ApiResourceVisibility.visibility_public
226
- ? "Make visible to all authenticated users?"
227
- : "Make visible to all org members?"}
228
- </span>
229
- <button
230
- type="button"
231
- onClick={confirmChange}
232
- className={cn(
233
- "rounded px-2 py-0.5 text-xs font-medium text-white",
234
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
235
- confirming === ApiResourceVisibility.visibility_public
236
- ? "bg-amber-600 hover:bg-amber-700 dark:bg-amber-600 dark:hover:bg-amber-500"
237
- : "bg-blue-600 hover:bg-blue-700 dark:bg-blue-600 dark:hover:bg-blue-500",
238
- )}
239
- >
240
- Confirm
241
- </button>
242
- <button
243
- type="button"
244
- onClick={cancelConfirm}
245
- className={cn(
246
- "rounded px-2 py-0.5 text-xs font-medium",
247
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
248
- confirming === ApiResourceVisibility.visibility_public
249
- ? "text-amber-700 hover:text-amber-900 dark:text-amber-300 dark:hover:text-amber-100"
250
- : "text-blue-700 hover:text-blue-900 dark:text-blue-300 dark:hover:text-blue-100",
251
- )}
252
- >
253
- Cancel
254
- </button>
255
- </div>
256
- )}
257
- </div>
258
- );
259
- }
260
-
261
- // ---------------------------------------------------------------------------
262
- // Helpers
263
- // ---------------------------------------------------------------------------
264
-
265
- function getSelectedStyle(value: ApiResourceVisibility): string {
266
- switch (value) {
267
- case ApiResourceVisibility.visibility_private:
268
- return "bg-amber-50 text-amber-800 shadow-sm dark:bg-amber-900/30 dark:text-amber-300";
269
- case ApiResourceVisibility.visibility_org:
270
- return "bg-blue-100 text-blue-800 shadow-sm dark:bg-blue-900/40 dark:text-blue-300";
271
- case ApiResourceVisibility.visibility_public:
272
- return "bg-emerald-100 text-emerald-800 shadow-sm dark:bg-emerald-900/40 dark:text-emerald-300";
273
- default:
274
- return "bg-background text-foreground shadow-sm";
275
- }
276
- }
277
-
278
- function getIcon(value: ApiResourceVisibility) {
279
- switch (value) {
280
- case ApiResourceVisibility.visibility_private:
281
- return <LockIcon className="size-3" />;
282
- case ApiResourceVisibility.visibility_org:
283
- return <UsersIcon className="size-3" />;
284
- case ApiResourceVisibility.visibility_public:
285
- return <GlobeIcon className="size-3" />;
286
- default:
287
- return null;
288
- }
289
- }
290
-
291
- // ---------------------------------------------------------------------------
292
- // Icons
293
- // ---------------------------------------------------------------------------
294
-
295
- function LockIcon({ className }: { readonly className?: string }) {
296
- return (
297
- <svg className={className} viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">
298
- <rect x="3.5" y="7" width="9" height="7" rx="1.5" />
299
- <path d="M5.5 7V5a2.5 2.5 0 0 1 5 0v2" />
300
- </svg>
301
- );
302
- }
303
-
304
- function UsersIcon({ className }: { readonly className?: string }) {
305
- return (
306
- <svg className={className} viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">
307
- <circle cx="6" cy="5" r="2.5" />
308
- <path d="M2 13c0-2.21 1.79-4 4-4s4 1.79 4 4" />
309
- <circle cx="11.5" cy="5.5" r="2" />
310
- <path d="M14 13c0-1.66-1.12-3-2.5-3-.5 0-1 .14-1.4.4" />
311
- </svg>
312
- );
313
- }
314
-
315
- function GlobeIcon({ className }: { readonly className?: string }) {
316
55
  return (
317
- <svg className={className} viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">
318
- <circle cx="8" cy="8" r="6" />
319
- <path d="M2 8h12" />
320
- <path d="M8 2c1.66 1.46 2.6 3.63 2.6 6s-.94 4.54-2.6 6c-1.66-1.46-2.6-3.63-2.6-6s.94-4.54 2.6-6Z" />
321
- </svg>
56
+ <VisibilitySelector
57
+ visibility={visibility}
58
+ options={INSTANCE_VISIBILITY_LEVELS}
59
+ onVisibilityChange={onVisibilityChange}
60
+ isPending={isPending}
61
+ disabled={disabled}
62
+ ariaLabel="Instance visibility"
63
+ className={className}
64
+ />
322
65
  );
323
66
  }
@@ -2,8 +2,14 @@
2
2
 
3
3
  import { useCallback } from "react";
4
4
  import type { ApiResourceVisibility } from "@stigmer/protos/ai/stigmer/commons/apiresource/enum_pb";
5
+ import { useDeploymentMode } from "../deployment-mode";
5
6
  import { PermissionGate } from "../iam-policy/PermissionGate";
6
- import { VisibilityBadge, VisibilityToggle } from "./VisibilityToggle";
7
+ import { useSsoProvider } from "../identity-provider/useSsoProvider";
8
+ import { VisibilityBadge, VisibilitySelector } from "./VisibilitySelector";
9
+ import {
10
+ blueprintVisibilityLevels,
11
+ INSTANCE_VISIBILITY_LEVELS,
12
+ } from "./visibilityLevels";
7
13
  import {
8
14
  useUpdateVisibility,
9
15
  type VisibilityResourceKind,
@@ -24,6 +30,11 @@ const FGA_KIND: Record<VisibilityResourceKind, string> = {
24
30
  workflowInstance: "workflow_instance",
25
31
  };
26
32
 
33
+ const INSTANCE_KINDS: ReadonlySet<VisibilityResourceKind> = new Set([
34
+ "agentInstance",
35
+ "workflowInstance",
36
+ ]);
37
+
27
38
  /** Props for {@link ResourceVisibilityControl}. */
28
39
  export interface ResourceVisibilityControlProps {
29
40
  /** Resource kind, selecting both the updateVisibility RPC and the FGA type. */
@@ -32,6 +43,13 @@ export interface ResourceVisibilityControlProps {
32
43
  readonly resourceId: string;
33
44
  /** Current visibility of the resource. */
34
45
  readonly visibility: ApiResourceVisibility;
46
+ /**
47
+ * Slug of the organization that OWNS the resource (`metadata.org`).
48
+ * Used to look up whether the org operates an IdentityProvider, which
49
+ * gates the Platform option for blueprints. When omitted, Platform is
50
+ * simply not offered (the other levels need no org context).
51
+ */
52
+ readonly org?: string;
35
53
  /**
36
54
  * Called after a successful visibility change so the host can refresh the
37
55
  * resource (e.g. `refetch`) and reflect the new state.
@@ -46,24 +64,50 @@ export interface ResourceVisibilityControlProps {
46
64
  *
47
65
  * Behavior:
48
66
  * - Always renders a legible state: a read-only {@link VisibilityBadge}
49
- * (Private/Public) is shown to viewers without `can_edit` and while the
67
+ * (all four levels) is shown to viewers without `can_edit` and while the
50
68
  * permission check is in flight — never a silent blank.
51
- * - Upgrades to the interactive {@link VisibilityToggle} for users with
69
+ * - Upgrades to the interactive {@link VisibilitySelector} for users with
52
70
  * `can_edit`, persisting changes via {@link useUpdateVisibility} and invoking
53
71
  * {@link ResourceVisibilityControlProps.onChanged} on success.
54
72
  *
55
- * Blueprints (agent/workflow/skill/mcp_server) expose Private/Public; the toggle
56
- * intentionally offers only those two levels (org-scoped sharing for instances is
57
- * handled by `InstanceVisibilitySelector`).
73
+ * Offered levels are kind- and context-aware (`visibilityLevels.ts`):
74
+ * - Blueprints (agent/workflow/skill/mcp_server): Private / Organization /
75
+ * Public, plus Platform when the deployment is `cloud` AND the owning org
76
+ * operates an IdentityProvider (checked via {@link useSsoProvider}, the
77
+ * only permission-free IdP lookup — blueprint owners editing visibility
78
+ * are not necessarily org admins). In `local` mode (OSS Go backend) the
79
+ * set collapses to Private / Public.
80
+ * - Instances: Private / Organization / Public — platform is excluded by
81
+ * design to preserve tenant isolation.
82
+ *
83
+ * The backend remains the enforcer (`ValidateVisibilityStep` rejects
84
+ * platform without an IdP); the gate here only prevents offering an option
85
+ * that is guaranteed to fail.
58
86
  */
59
87
  export function ResourceVisibilityControl({
60
88
  kind,
61
89
  resourceId,
62
90
  visibility,
91
+ org,
63
92
  onChanged,
64
93
  className,
65
94
  }: ResourceVisibilityControlProps) {
66
95
  const { updateVisibility, isPending } = useUpdateVisibility(kind, resourceId);
96
+ const deploymentMode = useDeploymentMode();
97
+
98
+ const isInstance = INSTANCE_KINDS.has(kind);
99
+ // The IdP lookup only matters for blueprints in cloud mode; passing null
100
+ // makes the hook a stable no-op everywhere else.
101
+ const idpLookupOrg =
102
+ !isInstance && deploymentMode === "cloud" ? (org ?? null) : null;
103
+ const { ssoProvider } = useSsoProvider(idpLookupOrg);
104
+
105
+ const options = isInstance
106
+ ? INSTANCE_VISIBILITY_LEVELS
107
+ : blueprintVisibilityLevels({
108
+ deploymentMode,
109
+ hasIdentityProvider: ssoProvider !== null,
110
+ });
67
111
 
68
112
  const handleChange = useCallback(
69
113
  async (next: ApiResourceVisibility) => {
@@ -72,7 +116,7 @@ export function ResourceVisibilityControl({
72
116
  onChanged?.();
73
117
  } catch {
74
118
  // The RPC error is captured in useUpdateVisibility's `error` state;
75
- // swallow here so the toggle's promise settles without an unhandled
119
+ // swallow here so the selector's promise settles without an unhandled
76
120
  // rejection. Surfacing a toast is the host app's concern.
77
121
  }
78
122
  },
@@ -88,10 +132,12 @@ export function ResourceVisibilityControl({
88
132
  fallback={badge}
89
133
  loading={badge}
90
134
  >
91
- <VisibilityToggle
135
+ <VisibilitySelector
92
136
  visibility={visibility}
137
+ options={options}
93
138
  onVisibilityChange={handleChange}
94
139
  isPending={isPending}
140
+ ariaLabel={isInstance ? "Instance visibility" : "Resource visibility"}
95
141
  className={className}
96
142
  />
97
143
  </PermissionGate>
@@ -48,7 +48,7 @@ const OPTIONS: readonly {
48
48
  *
49
49
  * Renders as a WAI-ARIA Radio Group with roving tabindex and
50
50
  * arrow-key navigation. Follows the same visual pattern as
51
- * {@link VisibilityToggle}.
51
+ * {@link VisibilitySelector}.
52
52
  *
53
53
  * The component is controlled — the consumer owns the `value` state
54
54
  * and handles persistence (e.g., localStorage).