@stigmer/react 3.0.4 → 3.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agent/AgentDetailView.d.ts +1 -11
- package/agent/AgentDetailView.d.ts.map +1 -1
- package/agent/AgentDetailView.js +3 -6
- package/agent/AgentDetailView.js.map +1 -1
- package/iam-policy/useCheckPermission.d.ts +3 -1
- package/iam-policy/useCheckPermission.d.ts.map +1 -1
- package/iam-policy/useCheckPermission.js +11 -15
- package/iam-policy/useCheckPermission.js.map +1 -1
- package/library/ResourceVisibilityControl.d.ts +35 -0
- package/library/ResourceVisibilityControl.d.ts.map +1 -0
- package/library/ResourceVisibilityControl.js +52 -0
- package/library/ResourceVisibilityControl.js.map +1 -0
- package/library/VisibilityToggle.d.ts +11 -0
- package/library/VisibilityToggle.d.ts.map +1 -1
- package/library/VisibilityToggle.js +11 -0
- package/library/VisibilityToggle.js.map +1 -1
- package/library/index.d.ts +3 -1
- package/library/index.d.ts.map +1 -1
- package/library/index.js +2 -1
- package/library/index.js.map +1 -1
- package/package.json +4 -4
- package/skill/SkillDetailView.d.ts +1 -11
- package/skill/SkillDetailView.d.ts.map +1 -1
- package/skill/SkillDetailView.js +3 -6
- package/skill/SkillDetailView.js.map +1 -1
- package/src/agent/AgentDetailView.tsx +9 -35
- package/src/iam-policy/useCheckPermission.ts +10 -15
- package/src/library/ResourceVisibilityControl.tsx +99 -0
- package/src/library/VisibilityToggle.tsx +33 -0
- package/src/library/index.ts +4 -1
- package/src/skill/SkillDetailView.tsx +9 -35
- package/src/workflow/WorkflowDetailView.tsx +9 -34
- package/workflow/WorkflowDetailView.d.ts +1 -10
- package/workflow/WorkflowDetailView.d.ts.map +1 -1
- package/workflow/WorkflowDetailView.js +3 -6
- package/workflow/WorkflowDetailView.js.map +1 -1
package/skill/SkillDetailView.js
CHANGED
|
@@ -5,12 +5,10 @@ import Markdown from "react-markdown";
|
|
|
5
5
|
import { cn } from "@stigmer/theme";
|
|
6
6
|
import { timestampDate } from "@bufbuild/protobuf/wkt";
|
|
7
7
|
import { SkillState } from "@stigmer/protos/ai/stigmer/agentic/skill/v1/status_pb";
|
|
8
|
-
import { ApiResourceVisibility } from "@stigmer/protos/ai/stigmer/commons/apiresource/enum_pb";
|
|
9
8
|
import { useSkill } from "./useSkill";
|
|
10
9
|
import { SkillFileBrowser } from "./SkillFileBrowser";
|
|
11
10
|
import { ErrorMessage } from "../error/ErrorMessage";
|
|
12
|
-
import {
|
|
13
|
-
import { PermissionGate } from "../iam-policy/PermissionGate";
|
|
11
|
+
import { ResourceVisibilityControl } from "../library/ResourceVisibilityControl";
|
|
14
12
|
import { MARKDOWN_COMPONENTS, REMARK_PLUGINS, stripFrontmatter } from "../internal/markdown-components";
|
|
15
13
|
import { ResourceDetailShell } from "../resource-detail/ResourceDetailShell";
|
|
16
14
|
import { Section } from "../resource-detail/Section";
|
|
@@ -50,7 +48,7 @@ const VERSIONS_TAB = { id: "versions", label: "Versions" };
|
|
|
50
48
|
* <SkillDetailView org="acme" slug="code-style-guide" version="stable" />
|
|
51
49
|
* ```
|
|
52
50
|
*/
|
|
53
|
-
export function SkillDetailView({ org, slug, version, onResourceLoad,
|
|
51
|
+
export function SkillDetailView({ org, slug, version, onResourceLoad, primaryAction, actions, additionalTabs, activeTab, onTabChange, defaultTab, onVersionSelect, editable = false, onResourceUpdated, className, }) {
|
|
54
52
|
const { skill, isLoading, error, refetch } = useSkill(org, slug, version);
|
|
55
53
|
const { versions, isEmpty: noVersions, getArtifactKey } = useSkillVersions(org, slug);
|
|
56
54
|
const [diffState, setDiffState] = useState(null);
|
|
@@ -105,8 +103,7 @@ export function SkillDetailView({ org, slug, version, onResourceLoad, onVisibili
|
|
|
105
103
|
status: status ? skillStateToPhase(status.state) : undefined,
|
|
106
104
|
statusLabel: status ? skillStateLabel(status.state) : undefined,
|
|
107
105
|
};
|
|
108
|
-
const
|
|
109
|
-
const visibilityControl = onVisibilityChange && meta ? (_jsx(PermissionGate, { resource: { kind: "skill", id: meta.id }, relation: "can_edit", fallback: visibilityBadge, children: _jsx(VisibilityToggle, { visibility: meta.visibility, onVisibilityChange: onVisibilityChange, isPending: isVisibilityPending }) })) : visibilityBadge;
|
|
106
|
+
const visibilityControl = meta ? (_jsx(ResourceVisibilityControl, { kind: "skill", resourceId: meta.id, visibility: meta.visibility, onChanged: refetch })) : undefined;
|
|
110
107
|
let tabContent;
|
|
111
108
|
if (activeAdditionalTab) {
|
|
112
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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"}
|
|
@@ -10,13 +10,11 @@ import type {
|
|
|
10
10
|
import type { ApiResourceReference } from "@stigmer/protos/ai/stigmer/commons/apiresource/io_pb";
|
|
11
11
|
import type { EnvVarDeclaration } from "@stigmer/protos/ai/stigmer/agentic/environment/v1/spec_pb";
|
|
12
12
|
import type { AgentInstance } from "@stigmer/protos/ai/stigmer/agentic/agentinstance/v1/api_pb";
|
|
13
|
-
import { ApiResourceVisibility } from "@stigmer/protos/ai/stigmer/commons/apiresource/enum_pb";
|
|
14
13
|
import { useAgent } from "./useAgent";
|
|
15
14
|
import { useUpdateAgent } from "./useUpdateAgent";
|
|
16
15
|
import { agentToInput } from "./internal/agentToInput";
|
|
17
16
|
import { ErrorMessage } from "../error/ErrorMessage";
|
|
18
|
-
import {
|
|
19
|
-
import { PermissionGate } from "../iam-policy/PermissionGate";
|
|
17
|
+
import { ResourceVisibilityControl } from "../library/ResourceVisibilityControl";
|
|
20
18
|
import { ResourceDetailShell } from "../resource-detail/ResourceDetailShell";
|
|
21
19
|
import { Section } from "../resource-detail/Section";
|
|
22
20
|
import { useDetailTabs } from "../resource-detail/useDetailTabs";
|
|
@@ -65,15 +63,6 @@ export interface AgentDetailViewProps {
|
|
|
65
63
|
* Not called on error or not-found states.
|
|
66
64
|
*/
|
|
67
65
|
readonly onResourceLoad?: (meta: { name: string; id: string }) => void;
|
|
68
|
-
/**
|
|
69
|
-
* Called when the user toggles visibility via the inline control.
|
|
70
|
-
* When provided, the header renders an interactive
|
|
71
|
-
* {@link VisibilityToggle} instead of a read-only badge.
|
|
72
|
-
* When omitted, visibility is displayed as a static "Public" pill.
|
|
73
|
-
*/
|
|
74
|
-
readonly onVisibilityChange?: (v: ApiResourceVisibility) => void;
|
|
75
|
-
/** `true` while a visibility update RPC is in flight. */
|
|
76
|
-
readonly isVisibilityPending?: boolean;
|
|
77
66
|
/**
|
|
78
67
|
* Primary action rendered as a visible button in the header area.
|
|
79
68
|
* Typically "Edit" for agent detail pages.
|
|
@@ -205,8 +194,6 @@ export function AgentDetailView({
|
|
|
205
194
|
onMcpServerClick,
|
|
206
195
|
onSkillClick,
|
|
207
196
|
onResourceLoad,
|
|
208
|
-
onVisibilityChange,
|
|
209
|
-
isVisibilityPending,
|
|
210
197
|
primaryAction,
|
|
211
198
|
actions,
|
|
212
199
|
additionalTabs,
|
|
@@ -325,27 +312,14 @@ export function AgentDetailView({
|
|
|
325
312
|
updatedAt: specAudit?.updatedAt ? timestampDate(specAudit.updatedAt) : null,
|
|
326
313
|
};
|
|
327
314
|
|
|
328
|
-
const
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
onVisibilityChange && meta ? (
|
|
337
|
-
<PermissionGate
|
|
338
|
-
resource={{ kind: "agent", id: meta.id }}
|
|
339
|
-
relation="can_edit"
|
|
340
|
-
fallback={visibilityBadge}
|
|
341
|
-
>
|
|
342
|
-
<VisibilityToggle
|
|
343
|
-
visibility={meta.visibility}
|
|
344
|
-
onVisibilityChange={onVisibilityChange}
|
|
345
|
-
isPending={isVisibilityPending}
|
|
346
|
-
/>
|
|
347
|
-
</PermissionGate>
|
|
348
|
-
) : visibilityBadge;
|
|
315
|
+
const visibilityControl = meta ? (
|
|
316
|
+
<ResourceVisibilityControl
|
|
317
|
+
kind="agent"
|
|
318
|
+
resourceId={meta.id}
|
|
319
|
+
visibility={meta.visibility}
|
|
320
|
+
onChanged={refetch}
|
|
321
|
+
/>
|
|
322
|
+
) : undefined;
|
|
349
323
|
|
|
350
324
|
let tabContent: React.ReactNode;
|
|
351
325
|
if (activeAdditionalTab) {
|
|
@@ -3,10 +3,9 @@
|
|
|
3
3
|
import { useEffect, useMemo, useRef, useState } from "react";
|
|
4
4
|
import { create } from "@bufbuild/protobuf";
|
|
5
5
|
import {
|
|
6
|
-
|
|
6
|
+
CheckMyPermissionInputSchema,
|
|
7
7
|
} from "@stigmer/protos/ai/stigmer/iam/iampolicy/v1/io_pb";
|
|
8
8
|
import {
|
|
9
|
-
IamPolicySpecSchema,
|
|
10
9
|
ApiResourceRefSchema,
|
|
11
10
|
} from "@stigmer/protos/ai/stigmer/iam/iampolicy/v1/spec_pb";
|
|
12
11
|
import { useStigmer } from "../hooks";
|
|
@@ -33,7 +32,9 @@ export interface UseCheckPermissionReturn {
|
|
|
33
32
|
* Hook that checks whether the current user has a specific permission
|
|
34
33
|
* on a resource.
|
|
35
34
|
*
|
|
36
|
-
* Wraps `iamPolicy.
|
|
35
|
+
* Wraps `iamPolicy.checkMyPermission()` — the dedicated self-check RPC
|
|
36
|
+
* where the server derives the principal from the authenticated token
|
|
37
|
+
* (the client never names a principal) — with caching and graceful
|
|
37
38
|
* degradation. When the server does not support authorization checks
|
|
38
39
|
* (OSS edition where the IAM service is not registered), the hook
|
|
39
40
|
* returns `allowed: true` — ensuring all UI is visible in single-user
|
|
@@ -88,22 +89,16 @@ export function useCheckPermission(
|
|
|
88
89
|
let cancelled = false;
|
|
89
90
|
setIsLoading(true);
|
|
90
91
|
|
|
91
|
-
const input = create(
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
id: "_self",
|
|
96
|
-
}),
|
|
97
|
-
resource: create(ApiResourceRefSchema, {
|
|
98
|
-
kind: resource.kind,
|
|
99
|
-
id: resource.id,
|
|
100
|
-
}),
|
|
101
|
-
relation,
|
|
92
|
+
const input = create(CheckMyPermissionInputSchema, {
|
|
93
|
+
resource: create(ApiResourceRefSchema, {
|
|
94
|
+
kind: resource.kind,
|
|
95
|
+
id: resource.id,
|
|
102
96
|
}),
|
|
97
|
+
relation,
|
|
103
98
|
});
|
|
104
99
|
|
|
105
100
|
stigmer.iamPolicy
|
|
106
|
-
.
|
|
101
|
+
.checkMyPermission(input)
|
|
107
102
|
.then((result) => {
|
|
108
103
|
if (cancelled) return;
|
|
109
104
|
const isAllowed = result.isAuthorized;
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { useCallback } from "react";
|
|
4
|
+
import type { ApiResourceVisibility } from "@stigmer/protos/ai/stigmer/commons/apiresource/enum_pb";
|
|
5
|
+
import { PermissionGate } from "../iam-policy/PermissionGate";
|
|
6
|
+
import { VisibilityBadge, VisibilityToggle } from "./VisibilityToggle";
|
|
7
|
+
import {
|
|
8
|
+
useUpdateVisibility,
|
|
9
|
+
type VisibilityResourceKind,
|
|
10
|
+
} from "./useUpdateVisibility";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Maps a {@link VisibilityResourceKind} (which mirrors the SDK method namespace,
|
|
14
|
+
* e.g. `mcpServer`) to the FGA object type used in authorization checks
|
|
15
|
+
* (e.g. `mcp_server`). For the three blueprints these coincide, but the mapping
|
|
16
|
+
* keeps the control correct for every kind it may serve.
|
|
17
|
+
*/
|
|
18
|
+
const FGA_KIND: Record<VisibilityResourceKind, string> = {
|
|
19
|
+
agent: "agent",
|
|
20
|
+
workflow: "workflow",
|
|
21
|
+
skill: "skill",
|
|
22
|
+
mcpServer: "mcp_server",
|
|
23
|
+
agentInstance: "agent_instance",
|
|
24
|
+
workflowInstance: "workflow_instance",
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
/** Props for {@link ResourceVisibilityControl}. */
|
|
28
|
+
export interface ResourceVisibilityControlProps {
|
|
29
|
+
/** Resource kind, selecting both the updateVisibility RPC and the FGA type. */
|
|
30
|
+
readonly kind: VisibilityResourceKind;
|
|
31
|
+
/** Id of the resource whose visibility is shown/edited. */
|
|
32
|
+
readonly resourceId: string;
|
|
33
|
+
/** Current visibility of the resource. */
|
|
34
|
+
readonly visibility: ApiResourceVisibility;
|
|
35
|
+
/**
|
|
36
|
+
* Called after a successful visibility change so the host can refresh the
|
|
37
|
+
* resource (e.g. `refetch`) and reflect the new state.
|
|
38
|
+
*/
|
|
39
|
+
readonly onChanged?: () => void;
|
|
40
|
+
/** Additional CSS classes applied to the root element. */
|
|
41
|
+
readonly className?: string;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Single source of truth for the resource-visibility control in detail headers.
|
|
46
|
+
*
|
|
47
|
+
* Behavior:
|
|
48
|
+
* - Always renders a legible state: a read-only {@link VisibilityBadge}
|
|
49
|
+
* (Private/Public) is shown to viewers without `can_edit` and while the
|
|
50
|
+
* permission check is in flight — never a silent blank.
|
|
51
|
+
* - Upgrades to the interactive {@link VisibilityToggle} for users with
|
|
52
|
+
* `can_edit`, persisting changes via {@link useUpdateVisibility} and invoking
|
|
53
|
+
* {@link ResourceVisibilityControlProps.onChanged} on success.
|
|
54
|
+
*
|
|
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`).
|
|
58
|
+
*/
|
|
59
|
+
export function ResourceVisibilityControl({
|
|
60
|
+
kind,
|
|
61
|
+
resourceId,
|
|
62
|
+
visibility,
|
|
63
|
+
onChanged,
|
|
64
|
+
className,
|
|
65
|
+
}: ResourceVisibilityControlProps) {
|
|
66
|
+
const { updateVisibility, isPending } = useUpdateVisibility(kind, resourceId);
|
|
67
|
+
|
|
68
|
+
const handleChange = useCallback(
|
|
69
|
+
async (next: ApiResourceVisibility) => {
|
|
70
|
+
try {
|
|
71
|
+
await updateVisibility(next);
|
|
72
|
+
onChanged?.();
|
|
73
|
+
} catch {
|
|
74
|
+
// The RPC error is captured in useUpdateVisibility's `error` state;
|
|
75
|
+
// swallow here so the toggle's promise settles without an unhandled
|
|
76
|
+
// rejection. Surfacing a toast is the host app's concern.
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
[updateVisibility, onChanged],
|
|
80
|
+
);
|
|
81
|
+
|
|
82
|
+
const badge = <VisibilityBadge visibility={visibility} className={className} />;
|
|
83
|
+
|
|
84
|
+
return (
|
|
85
|
+
<PermissionGate
|
|
86
|
+
resource={{ kind: FGA_KIND[kind], id: resourceId }}
|
|
87
|
+
relation="can_edit"
|
|
88
|
+
fallback={badge}
|
|
89
|
+
loading={badge}
|
|
90
|
+
>
|
|
91
|
+
<VisibilityToggle
|
|
92
|
+
visibility={visibility}
|
|
93
|
+
onVisibilityChange={handleChange}
|
|
94
|
+
isPending={isPending}
|
|
95
|
+
className={className}
|
|
96
|
+
/>
|
|
97
|
+
</PermissionGate>
|
|
98
|
+
);
|
|
99
|
+
}
|
|
@@ -205,6 +205,39 @@ export function VisibilityToggle({
|
|
|
205
205
|
);
|
|
206
206
|
}
|
|
207
207
|
|
|
208
|
+
/**
|
|
209
|
+
* Read-only visibility indicator (Private / Public) with a matching icon.
|
|
210
|
+
*
|
|
211
|
+
* Rendered wherever the interactive {@link VisibilityToggle} is not available —
|
|
212
|
+
* for viewers who lack `can_edit`, and while a permission check is in flight —
|
|
213
|
+
* so a resource's visibility is always legible rather than silently blank.
|
|
214
|
+
*/
|
|
215
|
+
export function VisibilityBadge({
|
|
216
|
+
visibility,
|
|
217
|
+
className,
|
|
218
|
+
}: {
|
|
219
|
+
readonly visibility: ApiResourceVisibility;
|
|
220
|
+
readonly className?: string;
|
|
221
|
+
}) {
|
|
222
|
+
const isPublic =
|
|
223
|
+
visibility === ApiResourceVisibility.visibility_public;
|
|
224
|
+
return (
|
|
225
|
+
<span
|
|
226
|
+
className={cn(
|
|
227
|
+
"inline-flex shrink-0 items-center gap-1 rounded-full bg-muted px-2 py-0.5 text-[10px] font-medium text-muted-foreground",
|
|
228
|
+
className,
|
|
229
|
+
)}
|
|
230
|
+
>
|
|
231
|
+
{isPublic ? (
|
|
232
|
+
<GlobeIcon className="size-2.5" />
|
|
233
|
+
) : (
|
|
234
|
+
<LockIcon className="size-2.5" />
|
|
235
|
+
)}
|
|
236
|
+
{isPublic ? "Public" : "Private"}
|
|
237
|
+
</span>
|
|
238
|
+
);
|
|
239
|
+
}
|
|
240
|
+
|
|
208
241
|
// ---------------------------------------------------------------------------
|
|
209
242
|
// Icons — inline SVGs following the SDK pattern (no icon library dependency)
|
|
210
243
|
// ---------------------------------------------------------------------------
|
package/src/library/index.ts
CHANGED
|
@@ -68,9 +68,12 @@ export type {
|
|
|
68
68
|
export { ImportResourceDialog } from "./ImportResourceDialog";
|
|
69
69
|
export type { ImportResourceDialogProps } from "./ImportResourceDialog";
|
|
70
70
|
|
|
71
|
-
export { VisibilityToggle } from "./VisibilityToggle";
|
|
71
|
+
export { VisibilityToggle, VisibilityBadge } from "./VisibilityToggle";
|
|
72
72
|
export type { VisibilityToggleProps } from "./VisibilityToggle";
|
|
73
73
|
|
|
74
|
+
export { ResourceVisibilityControl } from "./ResourceVisibilityControl";
|
|
75
|
+
export type { ResourceVisibilityControlProps } from "./ResourceVisibilityControl";
|
|
76
|
+
|
|
74
77
|
export { useUpdateVisibility } from "./useUpdateVisibility";
|
|
75
78
|
export type {
|
|
76
79
|
VisibilityResourceKind,
|
|
@@ -7,12 +7,10 @@ import { timestampDate } from "@bufbuild/protobuf/wkt";
|
|
|
7
7
|
import type { Skill } from "@stigmer/protos/ai/stigmer/agentic/skill/v1/api_pb";
|
|
8
8
|
import type { GitProvenance } from "@stigmer/protos/ai/stigmer/agentic/skill/v1/status_pb";
|
|
9
9
|
import { SkillState } from "@stigmer/protos/ai/stigmer/agentic/skill/v1/status_pb";
|
|
10
|
-
import { ApiResourceVisibility } from "@stigmer/protos/ai/stigmer/commons/apiresource/enum_pb";
|
|
11
10
|
import { useSkill } from "./useSkill";
|
|
12
11
|
import { SkillFileBrowser } from "./SkillFileBrowser";
|
|
13
12
|
import { ErrorMessage } from "../error/ErrorMessage";
|
|
14
|
-
import {
|
|
15
|
-
import { PermissionGate } from "../iam-policy/PermissionGate";
|
|
13
|
+
import { ResourceVisibilityControl } from "../library/ResourceVisibilityControl";
|
|
16
14
|
import { MARKDOWN_COMPONENTS, REMARK_PLUGINS, stripFrontmatter } from "../internal/markdown-components";
|
|
17
15
|
import { ResourceDetailShell } from "../resource-detail/ResourceDetailShell";
|
|
18
16
|
import { Section } from "../resource-detail/Section";
|
|
@@ -46,15 +44,6 @@ export interface SkillDetailViewProps {
|
|
|
46
44
|
* Not called on error or not-found states.
|
|
47
45
|
*/
|
|
48
46
|
readonly onResourceLoad?: (meta: { name: string; id: string }) => void;
|
|
49
|
-
/**
|
|
50
|
-
* Called when the user toggles visibility via the inline control.
|
|
51
|
-
* When provided, the header renders an interactive
|
|
52
|
-
* {@link VisibilityToggle} instead of a read-only badge.
|
|
53
|
-
* When omitted, visibility is displayed as a static "Public" pill.
|
|
54
|
-
*/
|
|
55
|
-
readonly onVisibilityChange?: (v: ApiResourceVisibility) => void;
|
|
56
|
-
/** `true` while a visibility update RPC is in flight. */
|
|
57
|
-
readonly isVisibilityPending?: boolean;
|
|
58
47
|
/**
|
|
59
48
|
* Primary action rendered as a visible button in the header area.
|
|
60
49
|
*/
|
|
@@ -153,8 +142,6 @@ export function SkillDetailView({
|
|
|
153
142
|
slug,
|
|
154
143
|
version,
|
|
155
144
|
onResourceLoad,
|
|
156
|
-
onVisibilityChange,
|
|
157
|
-
isVisibilityPending,
|
|
158
145
|
primaryAction,
|
|
159
146
|
actions,
|
|
160
147
|
additionalTabs,
|
|
@@ -243,27 +230,14 @@ export function SkillDetailView({
|
|
|
243
230
|
statusLabel: status ? skillStateLabel(status.state) : undefined,
|
|
244
231
|
};
|
|
245
232
|
|
|
246
|
-
const
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
onVisibilityChange && meta ? (
|
|
255
|
-
<PermissionGate
|
|
256
|
-
resource={{ kind: "skill", id: meta.id }}
|
|
257
|
-
relation="can_edit"
|
|
258
|
-
fallback={visibilityBadge}
|
|
259
|
-
>
|
|
260
|
-
<VisibilityToggle
|
|
261
|
-
visibility={meta.visibility}
|
|
262
|
-
onVisibilityChange={onVisibilityChange}
|
|
263
|
-
isPending={isVisibilityPending}
|
|
264
|
-
/>
|
|
265
|
-
</PermissionGate>
|
|
266
|
-
) : visibilityBadge;
|
|
233
|
+
const visibilityControl = meta ? (
|
|
234
|
+
<ResourceVisibilityControl
|
|
235
|
+
kind="skill"
|
|
236
|
+
resourceId={meta.id}
|
|
237
|
+
visibility={meta.visibility}
|
|
238
|
+
onChanged={refetch}
|
|
239
|
+
/>
|
|
240
|
+
) : undefined;
|
|
267
241
|
|
|
268
242
|
let tabContent: React.ReactNode;
|
|
269
243
|
if (activeAdditionalTab) {
|
|
@@ -5,7 +5,6 @@ import { cn } from "@stigmer/theme";
|
|
|
5
5
|
import { timestampDate } from "@bufbuild/protobuf/wkt";
|
|
6
6
|
import type { Workflow } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/api_pb";
|
|
7
7
|
import type { WorkflowInstance } from "@stigmer/protos/ai/stigmer/agentic/workflowinstance/v1/api_pb";
|
|
8
|
-
import { ApiResourceVisibility } from "@stigmer/protos/ai/stigmer/commons/apiresource/enum_pb";
|
|
9
8
|
import { ValidationState } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/serverless/validation_pb";
|
|
10
9
|
import type { WorkflowInput } from "@stigmer/sdk";
|
|
11
10
|
import { useWorkflow } from "./useWorkflow";
|
|
@@ -23,9 +22,8 @@ import { WorkflowInstanceList } from "./instance/WorkflowInstanceList";
|
|
|
23
22
|
import { WorkflowVersionsTab } from "./WorkflowVersionsTab";
|
|
24
23
|
import { useWorkflowVersions } from "./useWorkflowVersions";
|
|
25
24
|
import { ErrorMessage } from "../error/ErrorMessage";
|
|
26
|
-
import {
|
|
25
|
+
import { ResourceVisibilityControl } from "../library/ResourceVisibilityControl";
|
|
27
26
|
import { formatDurationSec } from "./format-utils";
|
|
28
|
-
import { PermissionGate } from "../iam-policy/PermissionGate";
|
|
29
27
|
import { ResourceDetailShell } from "../resource-detail/ResourceDetailShell";
|
|
30
28
|
import { Section } from "../resource-detail/Section";
|
|
31
29
|
import { useDetailTabs } from "../resource-detail/useDetailTabs";
|
|
@@ -53,14 +51,6 @@ export interface WorkflowDetailViewProps {
|
|
|
53
51
|
* Provides the resource display name for breadcrumbs, document titles, etc.
|
|
54
52
|
*/
|
|
55
53
|
readonly onResourceLoad?: (meta: { name: string; id: string }) => void;
|
|
56
|
-
/**
|
|
57
|
-
* Called when the user toggles visibility via the inline control.
|
|
58
|
-
* When provided, the header renders an interactive
|
|
59
|
-
* {@link VisibilityToggle} instead of a read-only badge.
|
|
60
|
-
*/
|
|
61
|
-
readonly onVisibilityChange?: (v: ApiResourceVisibility) => void;
|
|
62
|
-
/** `true` while a visibility update RPC is in flight. */
|
|
63
|
-
readonly isVisibilityPending?: boolean;
|
|
64
54
|
/**
|
|
65
55
|
* Primary action rendered as a visible button in the header area.
|
|
66
56
|
*/
|
|
@@ -158,8 +148,6 @@ export function WorkflowDetailView({
|
|
|
158
148
|
org,
|
|
159
149
|
slug,
|
|
160
150
|
onResourceLoad,
|
|
161
|
-
onVisibilityChange,
|
|
162
|
-
isVisibilityPending,
|
|
163
151
|
primaryAction,
|
|
164
152
|
actions,
|
|
165
153
|
additionalTabs,
|
|
@@ -269,27 +257,14 @@ export function WorkflowDetailView({
|
|
|
269
257
|
<ValidationIndicator state={validationState} />
|
|
270
258
|
) : undefined;
|
|
271
259
|
|
|
272
|
-
const
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
onVisibilityChange && meta ? (
|
|
281
|
-
<PermissionGate
|
|
282
|
-
resource={{ kind: "workflow", id: meta.id }}
|
|
283
|
-
relation="can_edit"
|
|
284
|
-
fallback={visibilityBadge}
|
|
285
|
-
>
|
|
286
|
-
<VisibilityToggle
|
|
287
|
-
visibility={meta.visibility}
|
|
288
|
-
onVisibilityChange={onVisibilityChange}
|
|
289
|
-
isPending={isVisibilityPending}
|
|
290
|
-
/>
|
|
291
|
-
</PermissionGate>
|
|
292
|
-
) : visibilityBadge;
|
|
260
|
+
const visibilityControl = meta ? (
|
|
261
|
+
<ResourceVisibilityControl
|
|
262
|
+
kind="workflow"
|
|
263
|
+
resourceId={meta.id}
|
|
264
|
+
visibility={meta.visibility}
|
|
265
|
+
onChanged={refetch}
|
|
266
|
+
/>
|
|
267
|
+
) : undefined;
|
|
293
268
|
|
|
294
269
|
let tabContent: React.ReactNode;
|
|
295
270
|
if (activeAdditionalTab) {
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { Workflow } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/api_pb";
|
|
2
2
|
import type { WorkflowInstance } from "@stigmer/protos/ai/stigmer/agentic/workflowinstance/v1/api_pb";
|
|
3
|
-
import { ApiResourceVisibility } from "@stigmer/protos/ai/stigmer/commons/apiresource/enum_pb";
|
|
4
3
|
import type { AdditionalTab, DetailAction } from "../resource-detail/types";
|
|
5
4
|
/** Props for {@link WorkflowDetailView}. */
|
|
6
5
|
export interface WorkflowDetailViewProps {
|
|
@@ -16,14 +15,6 @@ export interface WorkflowDetailViewProps {
|
|
|
16
15
|
name: string;
|
|
17
16
|
id: string;
|
|
18
17
|
}) => void;
|
|
19
|
-
/**
|
|
20
|
-
* Called when the user toggles visibility via the inline control.
|
|
21
|
-
* When provided, the header renders an interactive
|
|
22
|
-
* {@link VisibilityToggle} instead of a read-only badge.
|
|
23
|
-
*/
|
|
24
|
-
readonly onVisibilityChange?: (v: ApiResourceVisibility) => void;
|
|
25
|
-
/** `true` while a visibility update RPC is in flight. */
|
|
26
|
-
readonly isVisibilityPending?: boolean;
|
|
27
18
|
/**
|
|
28
19
|
* Primary action rendered as a visible button in the header area.
|
|
29
20
|
*/
|
|
@@ -116,5 +107,5 @@ export interface WorkflowDetailViewProps {
|
|
|
116
107
|
* <WorkflowDetailView org="acme" slug="onboard-user" />
|
|
117
108
|
* ```
|
|
118
109
|
*/
|
|
119
|
-
export declare function WorkflowDetailView({ org, slug, onResourceLoad,
|
|
110
|
+
export declare function WorkflowDetailView({ org, slug, onResourceLoad, primaryAction, actions, additionalTabs, activeTab, onTabChange, defaultTab, onExecutionClick, onCreateInstanceClick, onInstanceClick, onInstanceRunClick, onInstanceDeleteClick, instancesRefreshKey, editable, onResourceUpdated, onOpenInEditor, onViewLatestRun, className, }: WorkflowDetailViewProps): import("react/jsx-runtime").JSX.Element;
|
|
120
111
|
//# sourceMappingURL=WorkflowDetailView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowDetailView.d.ts","sourceRoot":"","sources":["../../src/workflow/WorkflowDetailView.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uDAAuD,CAAC;AACtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+DAA+D,CAAC;
|
|
1
|
+
{"version":3,"file":"WorkflowDetailView.d.ts","sourceRoot":"","sources":["../../src/workflow/WorkflowDetailView.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uDAAuD,CAAC;AACtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+DAA+D,CAAC;AA0BtG,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAsB,MAAM,0BAA0B,CAAC;AAUhG,4CAA4C;AAC5C,MAAM,WAAW,uBAAuB;IACtC,gDAAgD;IAChD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,qEAAqE;IACrE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;OAGG;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;;OAEG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACnD,gCAAgC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,qCAAqC;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,2EAA2E;IAC3E,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D;;;OAGG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5C;;OAEG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAChE;;OAEG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACnE;;OAEG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACtE;;;OAGG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC1D;;;;;;OAMG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,qDAAqD;IACrD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,GAAG,EACH,IAAI,EACJ,cAAc,EACd,aAAa,EACb,OAAO,EACP,cAAc,EACd,SAAS,EACT,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,QAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,SAAS,GACV,EAAE,uBAAuB,2CA8JzB"}
|
|
@@ -3,7 +3,6 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
3
3
|
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
4
4
|
import { cn } from "@stigmer/theme";
|
|
5
5
|
import { timestampDate } from "@bufbuild/protobuf/wkt";
|
|
6
|
-
import { ApiResourceVisibility } from "@stigmer/protos/ai/stigmer/commons/apiresource/enum_pb";
|
|
7
6
|
import { ValidationState } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/serverless/validation_pb";
|
|
8
7
|
import { useWorkflow } from "./useWorkflow";
|
|
9
8
|
import { useUpdateWorkflow } from "./useUpdateWorkflow";
|
|
@@ -20,9 +19,8 @@ import { WorkflowInstanceList } from "./instance/WorkflowInstanceList";
|
|
|
20
19
|
import { WorkflowVersionsTab } from "./WorkflowVersionsTab";
|
|
21
20
|
import { useWorkflowVersions } from "./useWorkflowVersions";
|
|
22
21
|
import { ErrorMessage } from "../error/ErrorMessage";
|
|
23
|
-
import {
|
|
22
|
+
import { ResourceVisibilityControl } from "../library/ResourceVisibilityControl";
|
|
24
23
|
import { formatDurationSec } from "./format-utils";
|
|
25
|
-
import { PermissionGate } from "../iam-policy/PermissionGate";
|
|
26
24
|
import { ResourceDetailShell } from "../resource-detail/ResourceDetailShell";
|
|
27
25
|
import { Section } from "../resource-detail/Section";
|
|
28
26
|
import { useDetailTabs } from "../resource-detail/useDetailTabs";
|
|
@@ -52,7 +50,7 @@ const DESCRIPTION_COLLAPSED_HEIGHT = "8rem";
|
|
|
52
50
|
* <WorkflowDetailView org="acme" slug="onboard-user" />
|
|
53
51
|
* ```
|
|
54
52
|
*/
|
|
55
|
-
export function WorkflowDetailView({ org, slug, onResourceLoad,
|
|
53
|
+
export function WorkflowDetailView({ org, slug, onResourceLoad, primaryAction, actions, additionalTabs, activeTab, onTabChange, defaultTab, onExecutionClick, onCreateInstanceClick, onInstanceClick, onInstanceRunClick, onInstanceDeleteClick, instancesRefreshKey, editable = false, onResourceUpdated, onOpenInEditor, onViewLatestRun, className, }) {
|
|
56
54
|
const { workflow, isLoading, error, refetch } = useWorkflow(org, slug);
|
|
57
55
|
const { update, isUpdating } = useUpdateWorkflow();
|
|
58
56
|
const { versions } = useWorkflowVersions(isLoading ? null : org, isLoading ? null : slug);
|
|
@@ -119,8 +117,7 @@ export function WorkflowDetailView({ org, slug, onResourceLoad, onVisibilityChan
|
|
|
119
117
|
};
|
|
120
118
|
const validationState = workflow.status?.serverlessWorkflowValidation?.state;
|
|
121
119
|
const headerMetaExtra = validationState ? (_jsx(ValidationIndicator, { state: validationState })) : undefined;
|
|
122
|
-
const
|
|
123
|
-
const visibilityControl = onVisibilityChange && meta ? (_jsx(PermissionGate, { resource: { kind: "workflow", id: meta.id }, relation: "can_edit", fallback: visibilityBadge, children: _jsx(VisibilityToggle, { visibility: meta.visibility, onVisibilityChange: onVisibilityChange, isPending: isVisibilityPending }) })) : visibilityBadge;
|
|
120
|
+
const visibilityControl = meta ? (_jsx(ResourceVisibilityControl, { kind: "workflow", resourceId: meta.id, visibility: meta.visibility, onChanged: refetch })) : undefined;
|
|
124
121
|
let tabContent;
|
|
125
122
|
if (activeAdditionalTab) {
|
|
126
123
|
tabContent = activeAdditionalTab.content;
|