@consciousclouds/operator-shell 0.1.0 → 0.2.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.
- package/CHANGELOG.md +66 -0
- package/README.md +80 -31
- package/dist/chief/ChiefDrawer.d.ts +34 -2
- package/dist/chief/ChiefDrawer.d.ts.map +1 -1
- package/dist/chief/ChiefDrawer.js +43 -30
- package/dist/chief/ChiefDrawer.js.map +1 -1
- package/dist/chief/ChiefHeaderBar.d.ts +19 -0
- package/dist/chief/ChiefHeaderBar.d.ts.map +1 -0
- package/dist/chief/ChiefHeaderBar.js +7 -0
- package/dist/chief/ChiefHeaderBar.js.map +1 -0
- package/dist/chief/ChiefMarkdown.d.ts +12 -0
- package/dist/chief/ChiefMarkdown.d.ts.map +1 -0
- package/dist/chief/ChiefMarkdown.js +95 -0
- package/dist/chief/ChiefMarkdown.js.map +1 -0
- package/dist/chief/ChiefPanel.d.ts +44 -1
- package/dist/chief/ChiefPanel.d.ts.map +1 -1
- package/dist/chief/ChiefPanel.js +79 -29
- package/dist/chief/ChiefPanel.js.map +1 -1
- package/dist/chief/ChiefRegion.d.ts +44 -1
- package/dist/chief/ChiefRegion.d.ts.map +1 -1
- package/dist/chief/ChiefRegion.js +63 -27
- package/dist/chief/ChiefRegion.js.map +1 -1
- package/dist/chief/ChiefSession.d.ts +46 -10
- package/dist/chief/ChiefSession.d.ts.map +1 -1
- package/dist/chief/ChiefSession.js +252 -6
- package/dist/chief/ChiefSession.js.map +1 -1
- package/dist/chief/ChiefTrigger.d.ts +26 -0
- package/dist/chief/ChiefTrigger.d.ts.map +1 -0
- package/dist/chief/ChiefTrigger.js +21 -0
- package/dist/chief/ChiefTrigger.js.map +1 -0
- package/dist/chief/conversation-adapter.d.ts +70 -0
- package/dist/chief/conversation-adapter.d.ts.map +1 -0
- package/dist/chief/conversation-adapter.js +26 -0
- package/dist/chief/conversation-adapter.js.map +1 -0
- package/dist/chief/conversation-identity.d.ts +48 -0
- package/dist/chief/conversation-identity.d.ts.map +1 -0
- package/dist/chief/conversation-identity.js +100 -0
- package/dist/chief/conversation-identity.js.map +1 -0
- package/dist/chief/personality-display.d.ts +56 -0
- package/dist/chief/personality-display.d.ts.map +1 -0
- package/dist/chief/personality-display.js +52 -0
- package/dist/chief/personality-display.js.map +1 -0
- package/dist/chief/turn-adapter.d.ts +45 -0
- package/dist/chief/turn-adapter.d.ts.map +1 -1
- package/dist/chief/use-chief-turn.d.ts +127 -14
- package/dist/chief/use-chief-turn.d.ts.map +1 -1
- package/dist/chief/use-chief-turn.js +284 -28
- package/dist/chief/use-chief-turn.js.map +1 -1
- package/dist/chief/use-controlled-open.d.ts +2 -0
- package/dist/chief/use-controlled-open.d.ts.map +1 -0
- package/dist/chief/use-controlled-open.js +27 -0
- package/dist/chief/use-controlled-open.js.map +1 -0
- package/dist/chief/use-smooth-stream.d.ts +8 -0
- package/dist/chief/use-smooth-stream.d.ts.map +1 -0
- package/dist/chief/use-smooth-stream.js +128 -0
- package/dist/chief/use-smooth-stream.js.map +1 -0
- package/dist/flavor/types.d.ts +36 -21
- package/dist/flavor/types.d.ts.map +1 -1
- package/dist/frame/ComposedWorkspace.d.ts +39 -0
- package/dist/frame/ComposedWorkspace.d.ts.map +1 -0
- package/dist/frame/ComposedWorkspace.js +94 -0
- package/dist/frame/ComposedWorkspace.js.map +1 -0
- package/dist/frame/OperatorShell.d.ts +115 -13
- package/dist/frame/OperatorShell.d.ts.map +1 -1
- package/dist/frame/OperatorShell.js +200 -12
- package/dist/frame/OperatorShell.js.map +1 -1
- package/dist/guard/permissions.d.ts +2 -2
- package/dist/guard/permissions.js +2 -2
- package/dist/header/OperatorHeader.d.ts +15 -2
- package/dist/header/OperatorHeader.d.ts.map +1 -1
- package/dist/header/OperatorHeader.js +3 -3
- package/dist/header/OperatorHeader.js.map +1 -1
- package/dist/icons/registry.d.ts +7 -1
- package/dist/icons/registry.d.ts.map +1 -1
- package/dist/icons/registry.js +31 -2
- package/dist/icons/registry.js.map +1 -1
- package/dist/index.d.ts +24 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +43 -17
- package/dist/index.js.map +1 -1
- package/dist/sidebar/OperatorSidebar.d.ts +16 -1
- package/dist/sidebar/OperatorSidebar.d.ts.map +1 -1
- package/dist/sidebar/OperatorSidebar.js +13 -10
- package/dist/sidebar/OperatorSidebar.js.map +1 -1
- package/dist/workspace/FormWorkspace.d.ts +2 -3
- package/dist/workspace/FormWorkspace.d.ts.map +1 -1
- package/dist/workspace/FormWorkspace.js.map +1 -1
- package/dist/workspace/session-adapter.d.ts +95 -0
- package/dist/workspace/session-adapter.d.ts.map +1 -0
- package/dist/workspace/session-adapter.js +29 -0
- package/dist/workspace/session-adapter.js.map +1 -0
- package/package.json +10 -5
- package/styles/source.css +9 -0
|
@@ -2,11 +2,20 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
/**
|
|
4
4
|
* OperatorShell — the operator-console frame (the one experience abstraction
|
|
5
|
-
* of an operator surface): full-width header, icon-collapsible sidebar,
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
5
|
+
* of an operator surface): full-width header, icon-collapsible sidebar, the
|
|
6
|
+
* workspace (framed or edge-to-edge), and the AI Region (Chief — push,
|
|
7
|
+
* overlay, or rail).
|
|
8
|
+
*
|
|
9
|
+
* The neutral FRAME (the sidebar/inset layout skeleton — sidebar-16's
|
|
10
|
+
* header-above-sidebar geometry, sidebar-07's icon-collapsible rail — plus the
|
|
11
|
+
* assistant-panel placement mechanics, the main-region reflow, and the
|
|
12
|
+
* workspace chrome) is now delegated to @consciousclouds/shell-primitive's
|
|
13
|
+
* ShellFrame (mechanism). This shell owns the MEANING: the operator header +
|
|
14
|
+
* sidebar + command palette, the permission/inspector context, and Chief as
|
|
15
|
+
* the assistant slot (the primitive knows nothing of Chief). Chief's OPTIONALITY
|
|
16
|
+
* lives at the primitive level — ShellFrame's assistant slot is optional, which
|
|
17
|
+
* is what the future Business / Consumer shells frame around; an operator
|
|
18
|
+
* surface always has Chief, so `turnAdapter` stays required here.
|
|
10
19
|
*
|
|
11
20
|
* The shell owns the experience; the product injects meaning:
|
|
12
21
|
* - `flavor` — the declarative surface manifest (nav, product context,
|
|
@@ -18,18 +27,33 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
18
27
|
* - `inspectorViews` — the detail views for the Flavor's declared
|
|
19
28
|
* inspector entity-kind references (the shell owns the
|
|
20
29
|
* panel; the product owns the views),
|
|
21
|
-
* - `icons` / `profile` — vocabulary and identity slot fillings
|
|
30
|
+
* - `icons` / `profile` — vocabulary and identity slot fillings,
|
|
31
|
+
* - `personalityDisplay` — Chief display identity from the Factory
|
|
32
|
+
* personality record (D-Q2 seam: displayName literal;
|
|
33
|
+
* icon/accent as REFERENCES resolved through the icon
|
|
34
|
+
* registry and the Token System),
|
|
35
|
+
* - `chrome` — layout philosophy (DEFAULTS-AND-OVERRIDES: the SDK ships
|
|
36
|
+
* sensible defaults — push Chief + framed workspace — and
|
|
37
|
+
* the consuming app overrides at its composition root; a
|
|
38
|
+
* composition concern, deliberately NOT Flavor data).
|
|
22
39
|
*
|
|
23
|
-
* The frame owns the command palette's open state
|
|
24
|
-
*
|
|
40
|
+
* The frame owns the command palette's open state (the header search button
|
|
41
|
+
* and ⌘K open the one instance) and the Chief panel's open state (the header
|
|
42
|
+
* ChiefTrigger, ⌘J, Esc, outside-click, and the scrim all drive the SAME
|
|
43
|
+
* value — one open state, whoever moves it).
|
|
25
44
|
*
|
|
26
45
|
* Brand and theme arrive from the layers below (BrandProvider /
|
|
27
46
|
* ThemeProvider mounted by the app) — the shell only reads them.
|
|
28
47
|
*/
|
|
29
48
|
import * as React from "react";
|
|
30
49
|
import { useBrand } from "@consciousclouds/brand";
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
50
|
+
import { ShellFrame } from "@consciousclouds/shell-primitive";
|
|
51
|
+
import { PageTransition, Skeleton, cn } from "@consciousclouds/ui";
|
|
52
|
+
import { ComposedWorkspace } from "./ComposedWorkspace.js";
|
|
53
|
+
import { ChiefRegion, resolveChiefBehavior, } from "../chief/ChiefRegion.js";
|
|
54
|
+
import { ChiefTrigger } from "../chief/ChiefTrigger.js";
|
|
55
|
+
import { adoptConversationId, conversationStorageKey, getOrMintConversationId, } from "../chief/conversation-identity.js";
|
|
56
|
+
import { resolveChiefTitle, resolvePersonalityAccent, resolvePersonalityIcon, } from "../chief/personality-display.js";
|
|
33
57
|
import { PermissionProvider } from "../guard/PermissionProvider.js";
|
|
34
58
|
import { unknownPermissions } from "../guard/permissions.js";
|
|
35
59
|
import { OperatorHeader } from "../header/OperatorHeader.js";
|
|
@@ -37,8 +61,112 @@ import { resolveIconFamily } from "../icons/registry.js";
|
|
|
37
61
|
import { InspectorProvider } from "../inspector/InspectorProvider.js";
|
|
38
62
|
import { CommandPalette } from "../palette/CommandPalette.js";
|
|
39
63
|
import { OperatorSidebar } from "../sidebar/OperatorSidebar.js";
|
|
40
|
-
export function OperatorShell({ flavor, turnAdapter, resolvePermission = unknownPermissions, runCommand, inspectorViews, searchSources, icons, profile, searchPlaceholder, workspaceSwitcher, children, }) {
|
|
64
|
+
export function OperatorShell({ flavor, turnAdapter, resolvePermission = unknownPermissions, runCommand, inspectorViews, searchSources, icons, profile, notifications, searchPlaceholder, personalityDisplay, chrome, workspaceSwitcher, canvasComponentMap, sessionAdapter, conversationAdapter, children, }) {
|
|
41
65
|
const [paletteOpen, setPaletteOpen] = React.useState(false);
|
|
66
|
+
const [chiefOpen, setChiefOpen] = React.useState(false);
|
|
67
|
+
// The compose→center binder's state (shell-owned, NEVER a CCU-local useState):
|
|
68
|
+
// the workspace HANDLE — the canvas Chief composed this turn plus its provenance
|
|
69
|
+
// (composer/intent/conversation), plus (when the canvas arrived by REOPENING a
|
|
70
|
+
// kept composition) the kept identity. useChiefTurn surfaces canvas+meta via
|
|
71
|
+
// onComposed; openSession below sets all three. Null = show the product's page.
|
|
72
|
+
const [composed, setComposed] = React.useState(null);
|
|
73
|
+
// Center MOTION state — continuity, never decoration, and never simulated: 'composing'
|
|
74
|
+
// is driven by the REAL tool_start of a compose-class tool; 'opening' begins the moment
|
|
75
|
+
// a session row is clicked (instant response; the re-projection resolves behind it).
|
|
76
|
+
const [centerBusy, setCenterBusy] = React.useState(null);
|
|
77
|
+
// The Workspace-Sessions region's state (slice 5) — the kept compositions the
|
|
78
|
+
// injected SessionAdapter lists. Shell-owned like the composed handle; without
|
|
79
|
+
// an adapter it stays empty and the region never renders.
|
|
80
|
+
const [sessions, setSessions] = React.useState([]);
|
|
81
|
+
const refreshSessions = React.useCallback(async () => {
|
|
82
|
+
if (!sessionAdapter)
|
|
83
|
+
return;
|
|
84
|
+
try {
|
|
85
|
+
setSessions(await sessionAdapter.listCompositions());
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
/* the list is chrome; fail quiet */
|
|
89
|
+
}
|
|
90
|
+
}, [sessionAdapter]);
|
|
91
|
+
// Reopen a kept composition: the adapter RE-PROJECTS a fresh render (the
|
|
92
|
+
// deterministic composer read named by the stored intent) — restore is meaning
|
|
93
|
+
// re-derived, never persisted pixels — and the shell mounts it as the composed
|
|
94
|
+
// workspace, already kept. An EXPLICIT open (the operator clicked the row) also
|
|
95
|
+
// ADOPTS the session's owning conversation — "a conversation owns a workspace"
|
|
96
|
+
// (Canvas OS §4), so rejoining the workspace rejoins its thread and the next
|
|
97
|
+
// spoken turn records there. The mount-time hard-refresh restore does NOT adopt:
|
|
98
|
+
// it re-projects the operator's place without hijacking the current conversation.
|
|
99
|
+
const openSession = React.useCallback(async (workspaceId, opts) => {
|
|
100
|
+
if (!sessionAdapter)
|
|
101
|
+
return;
|
|
102
|
+
setCenterBusy("opening"); // instant response the moment the row is clicked — no hesitation
|
|
103
|
+
try {
|
|
104
|
+
const opened = await sessionAdapter.openComposition(workspaceId);
|
|
105
|
+
setComposed({
|
|
106
|
+
canvas: opened.canvas,
|
|
107
|
+
meta: {
|
|
108
|
+
composer: opened.source.composer,
|
|
109
|
+
intent: opened.source.intent,
|
|
110
|
+
conversationId: opened.conversationId ?? "",
|
|
111
|
+
// The workspace ANCHOR survives reopen — the canonical turn id the
|
|
112
|
+
// Session Binder restores to (previously dropped here; a defect).
|
|
113
|
+
...(opened.source.turnId ? { turnId: opened.source.turnId } : {}),
|
|
114
|
+
},
|
|
115
|
+
kept: { workspaceId: opened.workspaceId, name: opened.name },
|
|
116
|
+
});
|
|
117
|
+
if (opts?.adoptConversation && opened.conversationId) {
|
|
118
|
+
adoptConversationId(conversationStorageKey(flavor.chief?.personalityRef), opened.conversationId);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
catch (err) {
|
|
122
|
+
// An unopenable session must not take the shell down; the row stays listed.
|
|
123
|
+
console.warn("[operator-shell] openComposition failed:", err);
|
|
124
|
+
}
|
|
125
|
+
finally {
|
|
126
|
+
setCenterBusy(null);
|
|
127
|
+
}
|
|
128
|
+
}, [sessionAdapter, flavor.chief?.personalityRef]);
|
|
129
|
+
// HARD-REFRESH RESTORE (slice 5): on mount, load the sessions list and reopen
|
|
130
|
+
// a kept composition — it IS the operator's place ("walk up and your place is
|
|
131
|
+
// still there"). COHERENCE RULE (Canvas OS §4, "a conversation owns a
|
|
132
|
+
// workspace"): prefer the most recent workspace OWNED BY the active
|
|
133
|
+
// conversation (the thread localStorage restored), so the center and the
|
|
134
|
+
// continuing thread come back as one pair. Only when the active conversation
|
|
135
|
+
// owns no kept workspace does the globally most recent one stand in — without
|
|
136
|
+
// adopting its conversation (the operator's thread continuity wins; the full
|
|
137
|
+
// thread↔workspace reconciliation is the drawer-polish slice's read-seam
|
|
138
|
+
// hydration, not a rule to bake here). Everything re-derives through the adapter.
|
|
139
|
+
React.useEffect(() => {
|
|
140
|
+
if (!sessionAdapter)
|
|
141
|
+
return;
|
|
142
|
+
let cancelled = false;
|
|
143
|
+
(async () => {
|
|
144
|
+
try {
|
|
145
|
+
const list = await sessionAdapter.listCompositions();
|
|
146
|
+
if (cancelled)
|
|
147
|
+
return;
|
|
148
|
+
setSessions(list);
|
|
149
|
+
if (list.length === 0)
|
|
150
|
+
return;
|
|
151
|
+
const activeConversation = getOrMintConversationId(conversationStorageKey(flavor.chief?.personalityRef));
|
|
152
|
+
const owned = activeConversation
|
|
153
|
+
? list.find((s) => s.conversationId === activeConversation)
|
|
154
|
+
: undefined;
|
|
155
|
+
await openSession((owned ?? list[0]).workspaceId);
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
/* no restore on a failed list — the product page stands */
|
|
159
|
+
}
|
|
160
|
+
})();
|
|
161
|
+
return () => {
|
|
162
|
+
cancelled = true;
|
|
163
|
+
};
|
|
164
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
165
|
+
}, [sessionAdapter]);
|
|
166
|
+
// The Chief trigger element, handed to the panel via getTriggerElement:
|
|
167
|
+
// excluded from outside-click dismissal; receives focus back on close.
|
|
168
|
+
const chiefTriggerRef = React.useRef(null);
|
|
169
|
+
const getChiefTrigger = React.useCallback(() => chiefTriggerRef.current, []);
|
|
42
170
|
// The Brand's icon-family declaration (inert data from the layer below),
|
|
43
171
|
// READ-AND-DEFAULTED here: the shell ships exactly one family (lucide, per
|
|
44
172
|
// the license allowlist), so any other declaration resolves to it —
|
|
@@ -46,9 +174,69 @@ export function OperatorShell({ flavor, turnAdapter, resolvePermission = unknown
|
|
|
46
174
|
// this same read starts selecting between built-in vocabularies.
|
|
47
175
|
const brand = useBrand();
|
|
48
176
|
const iconFamily = resolveIconFamily(brand.iconFamily);
|
|
177
|
+
// The chrome config — defaults-and-overrides (layout philosophy is a
|
|
178
|
+
// composition concern; the Flavor's legacy `placement` is honored as a
|
|
179
|
+
// hint only when the chrome declares nothing). These map onto the neutral
|
|
180
|
+
// ShellFrame placement contract: chiefBehavior → assistantBehavior,
|
|
181
|
+
// chiefWidth → assistantWidth, chiefOpen → assistantOpen.
|
|
182
|
+
const chiefBehavior = resolveChiefBehavior(chrome?.chiefBehavior, flavor.chief?.placement);
|
|
183
|
+
const chiefWidth = chrome?.chiefWidth ?? 420;
|
|
184
|
+
const workspaceChrome = chrome?.workspaceChrome ?? "framed";
|
|
185
|
+
const framed = workspaceChrome === "framed";
|
|
186
|
+
// Chief display identity (D-Q2): displayName literal; icon/accent as
|
|
187
|
+
// REFERENCES resolved through the icon registry + the Token System.
|
|
188
|
+
const chiefTitle = resolveChiefTitle(personalityDisplay, flavor.chief?.title);
|
|
189
|
+
const ChiefIcon = resolvePersonalityIcon(personalityDisplay, icons, iconFamily);
|
|
190
|
+
const chiefAccent = resolvePersonalityAccent(personalityDisplay?.accentRef);
|
|
49
191
|
return (
|
|
50
192
|
// The guard context: pages below read the SAME injected resolution the
|
|
51
193
|
// sidebar and palette gate on (usePermission / RouteGuard, contracts §5).
|
|
52
|
-
|
|
194
|
+
// The neutral FRAME (layout skeleton + assistant-panel placement + reflow +
|
|
195
|
+
// workspace chrome) is delegated to @consciousclouds/shell-primitive; this
|
|
196
|
+
// shell keeps the MEANING — the guard/inspector context, the operator
|
|
197
|
+
// header + sidebar + command palette, and Chief as the ASSISTANT SLOT
|
|
198
|
+
// (with its trigger composed into the header).
|
|
199
|
+
_jsx(PermissionProvider, { resolver: resolvePermission, children: _jsx(InspectorProvider, { entityKinds: flavor.inspector?.entityKinds, views: inspectorViews, children: _jsx(ShellFrame, { assistantBehavior: chiefBehavior, assistantWidth: chiefWidth, assistantOpen: chiefOpen, workspaceChrome: workspaceChrome, header: _jsx(OperatorHeader, { profile: profile, notifications: notifications, searchPlaceholder: searchPlaceholder, onSearchOpen: () => setPaletteOpen(true), chiefTrigger: _jsx(ChiefTrigger, { ref: chiefTriggerRef, open: chiefOpen, onToggle: () => setChiefOpen((o) => !o), label: chiefTitle, icon: ChiefIcon, accentColor: chiefAccent,
|
|
200
|
+
// The rail is always visible at xl+ — no trigger needed
|
|
201
|
+
// there; below xl the rail's overlay fallback still wants it.
|
|
202
|
+
className: cn(chiefBehavior === "rail" && "xl:hidden") }) }), overlays: _jsx(CommandPalette, { flavor: flavor, resolvePermission: resolvePermission, icons: icons, iconFamily: iconFamily, runCommand: runCommand, searchSources: searchSources, open: paletteOpen, onOpenChange: setPaletteOpen }), sidebar: _jsx(OperatorSidebar, { flavor: flavor, resolvePermission: resolvePermission, icons: icons, iconFamily: iconFamily, workspaceSwitcher: workspaceSwitcher }),
|
|
203
|
+
// The AI Region — Chief is the operator surface's contribution to
|
|
204
|
+
// the assistant slot. Behavior/width/open come from the chrome
|
|
205
|
+
// config (mapped above); the turn flow is identical in every
|
|
206
|
+
// behavior. The primitive reflows the workspace around it.
|
|
207
|
+
assistant: _jsx(ChiefRegion, { flavor: flavor, adapter: turnAdapter, conversationAdapter: conversationAdapter,
|
|
208
|
+
// Kept workspaces (the drawer's Workspaces tab): a row click is an
|
|
209
|
+
// EXPLICIT open — it re-projects the workspace to the center AND
|
|
210
|
+
// rejoins its owning conversation (mint-or-adopt, slice 2a).
|
|
211
|
+
workspaces: sessionAdapter
|
|
212
|
+
? {
|
|
213
|
+
items: sessions,
|
|
214
|
+
activeId: composed?.kept?.workspaceId,
|
|
215
|
+
onOpen: (id) => void openSession(id, { adoptConversation: true }),
|
|
216
|
+
}
|
|
217
|
+
: undefined, behavior: chiefBehavior, width: chiefWidth, variant: framed ? "card" : "flat", open: chiefOpen, onOpenChange: setChiefOpen, getTriggerElement: getChiefTrigger, personalityDisplay: personalityDisplay, icons: icons, iconFamily: iconFamily,
|
|
218
|
+
// The compose→center seam: a composed CanvasDefinition + its provenance
|
|
219
|
+
// are lifted to the shell, which mounts the canvas in the CENTER below
|
|
220
|
+
// (never inside the panel) and arms the Keep-composition gesture.
|
|
221
|
+
onComposed: (canvas, meta) => {
|
|
222
|
+
setComposed({ canvas, meta });
|
|
223
|
+
setCenterBusy(null);
|
|
224
|
+
}, onComposeActivity: (phase) => setCenterBusy((b) => phase === "composing"
|
|
225
|
+
? "composing"
|
|
226
|
+
: b === "composing"
|
|
227
|
+
? null
|
|
228
|
+
: b) }), children: centerBusy ? (
|
|
229
|
+
// The composing/opening interstitial — motion synchronized to REAL execution
|
|
230
|
+
// (a compose-class tool_start → the resolved canvas, or click → re-projection).
|
|
231
|
+
// Skeleton frames breathe with the motion tokens; never a simulated spinner.
|
|
232
|
+
_jsxs("div", { className: "flex h-full min-h-0 flex-col gap-3", "data-center-busy": centerBusy, children: [_jsx("span", { className: "animate-pulse text-xs font-medium uppercase tracking-wide text-muted-foreground", children: centerBusy === "composing"
|
|
233
|
+
? "Composing workspace…"
|
|
234
|
+
: "Opening workspace…" }), _jsxs("div", { className: "grid gap-3 md:grid-cols-3", children: [_jsx(Skeleton, { className: "h-24" }), _jsx(Skeleton, { className: "h-24" }), _jsx(Skeleton, { className: "h-24" })] }), _jsx(Skeleton, { className: "h-40" }), _jsx(Skeleton, { className: "min-h-0 flex-1" })] })) : composed && canvasComponentMap ? (
|
|
235
|
+
// Keyed by workspace identity: switching sessions (or a fresh composition)
|
|
236
|
+
// crossfades through the shared PageTransition — the environment EVOLVES;
|
|
237
|
+
// the page never "changes".
|
|
238
|
+
_jsx(PageTransition, { transitionKey: composed.kept?.workspaceId ??
|
|
239
|
+
composed.canvas.correlationId ??
|
|
240
|
+
"composed", className: "min-h-full", children: _jsx(ComposedWorkspace, { canvas: composed.canvas, componentMap: canvasComponentMap, meta: composed.meta, sessionAdapter: sessionAdapter, kept: composed.kept, onKept: () => refreshSessions(), onDismiss: () => setComposed(null) }) })) : (children) }) }) }));
|
|
53
241
|
}
|
|
54
242
|
//# sourceMappingURL=OperatorShell.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OperatorShell.js","sourceRoot":"","sources":["../../src/frame/OperatorShell.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb
|
|
1
|
+
{"version":3,"file":"OperatorShell.js","sourceRoot":"","sources":["../../src/frame/OperatorShell.tsx"],"names":[],"mappings":"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"}
|
|
@@ -30,8 +30,8 @@ export type SyncPermissionResolver = (permission: string) => PermissionDecision;
|
|
|
30
30
|
*/
|
|
31
31
|
export type PermissionResolver = (permission: string) => PermissionDecision | Promise<PermissionDecision>;
|
|
32
32
|
/**
|
|
33
|
-
* The permissive
|
|
34
|
-
*
|
|
33
|
+
* The permissive resolver for dev-open postures. It exercises the seam
|
|
34
|
+
* without inventing governance the product doesn't have.
|
|
35
35
|
*/
|
|
36
36
|
export declare const allowAllPermissions: SyncPermissionResolver;
|
|
37
37
|
/**
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
* usePermission / usePermissionDecisions / RouteGuard) lives beside it.
|
|
20
20
|
*/
|
|
21
21
|
/**
|
|
22
|
-
* The permissive
|
|
23
|
-
*
|
|
22
|
+
* The permissive resolver for dev-open postures. It exercises the seam
|
|
23
|
+
* without inventing governance the product doesn't have.
|
|
24
24
|
*/
|
|
25
25
|
export const allowAllPermissions = () => "allowed";
|
|
26
26
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* OperatorHeader — the top chrome: brand slot · sidebar trigger · search
|
|
3
|
-
* (the command-palette trigger) · environment switcher · notifications ·
|
|
3
|
+
* (the command-palette trigger) · environment switcher · notifications slot ·
|
|
4
4
|
* theme toggle · profile slot. The brand block renders through the Brand
|
|
5
5
|
* Platform (BrandLogo + useBrand — the shell never bakes an image or a mark
|
|
6
6
|
* string); the environment chrome renders through the published
|
|
@@ -20,6 +20,19 @@ export interface OperatorHeaderProps {
|
|
|
20
20
|
searchPlaceholder?: string;
|
|
21
21
|
/** Opens the command palette (wired by the frame). Absent ⇒ inert button. */
|
|
22
22
|
onSearchOpen?: () => void;
|
|
23
|
+
/**
|
|
24
|
+
* The AI Region's header trigger (the frame mounts a ChiefTrigger here —
|
|
25
|
+
* the click twin of ⌘J). A slot, so custom composition roots may replace
|
|
26
|
+
* or omit it.
|
|
27
|
+
*/
|
|
28
|
+
chiefTrigger?: React.ReactNode;
|
|
29
|
+
/**
|
|
30
|
+
* Product-injected notifications affordance (bell button, unread badge,
|
|
31
|
+
* dropdown — whatever the product's notification model is). A SLOT, not a
|
|
32
|
+
* built-in: the shell has no notification source, so absent ⇒ nothing
|
|
33
|
+
* renders — a missing affordance beats a fake one.
|
|
34
|
+
*/
|
|
35
|
+
notifications?: React.ReactNode;
|
|
23
36
|
}
|
|
24
|
-
export declare function OperatorHeader({ profile, searchPlaceholder, onSearchOpen, }: OperatorHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
37
|
+
export declare function OperatorHeader({ profile, searchPlaceholder, onSearchOpen, chiefTrigger, notifications, }: OperatorHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
25
38
|
//# sourceMappingURL=OperatorHeader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OperatorHeader.d.ts","sourceRoot":"","sources":["../../src/header/OperatorHeader.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAUpC,MAAM,WAAW,mBAAmB;IAClC,6EAA6E;IAC7E,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,oEAAoE;IACpE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"OperatorHeader.d.ts","sourceRoot":"","sources":["../../src/header/OperatorHeader.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAUpC,MAAM,WAAW,mBAAmB;IAClC,6EAA6E;IAC7E,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,oEAAoE;IACpE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B;;;;OAIG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACjC;AAED,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,iBAA6B,EAC7B,YAAY,EACZ,YAAY,EACZ,aAAa,GACd,EAAE,mBAAmB,2CAyDrB"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import {
|
|
3
|
+
import { Search } from "lucide-react";
|
|
4
4
|
import { BrandLogo, useBrand } from "@consciousclouds/brand";
|
|
5
5
|
import { Button, Separator, SidebarTrigger, cn } from "@consciousclouds/ui";
|
|
6
6
|
import { EnvironmentSwitcher } from "./EnvironmentSwitcher.js";
|
|
7
7
|
import { OperatorProfileMenu } from "./OperatorProfileMenu.js";
|
|
8
8
|
import { ThemeToggle } from "./ThemeToggle.js";
|
|
9
|
-
export function OperatorHeader({ profile, searchPlaceholder = "Search…", onSearchOpen, }) {
|
|
9
|
+
export function OperatorHeader({ profile, searchPlaceholder = "Search…", onSearchOpen, chiefTrigger, notifications, }) {
|
|
10
10
|
const brand = useBrand();
|
|
11
|
-
return (_jsx("header", { className: "sticky top-0 z-50 flex h-(--header-height) w-full shrink-0 items-center border-b border-border bg-background", children: _jsxs("div", { className: "flex w-full items-center gap-2 px-3 sm:px-4", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsxs("div", { className: "flex size-7 shrink-0 items-center justify-center overflow-hidden rounded-md bg-primary text-sm font-bold text-primary-foreground lowercase", children: [_jsx(BrandLogo, { role: "icon", mode: "light", className: "max-h-full max-w-full dark:hidden" }), _jsx(BrandLogo, { role: "icon", mode: "dark", className: "hidden max-h-full max-w-full dark:block" })] }), _jsxs("div", { className: "leading-tight", children: [_jsx("div", { className: "text-sm font-semibold", children: brand.name }), brand.sub && _jsx("div", { className: "text-[11px] text-muted-foreground", children: brand.sub })] })] }), _jsx(Separator, { orientation: "vertical", className: "mx-1 hidden data-[orientation=vertical]:h-5 md:block" }), _jsx(SidebarTrigger, { className: "text-muted-foreground" }), _jsxs(Button, { type: "button", variant: "outline", onClick: onSearchOpen, className: cn("relative ml-2 hidden h-8 max-w-md flex-1 justify-start border-input bg-muted/50 px-2.5 font-normal text-muted-foreground shadow-none hover:bg-muted/80 md:inline-flex"), children: [_jsx(Search, { className: "size-4" }), _jsx("span", { className: "truncate", children: searchPlaceholder }), _jsxs("kbd", { className: "pointer-events-none absolute top-1/2 right-2 hidden h-5 -translate-y-1/2 items-center gap-1 rounded border bg-background px-1.5 font-mono text-[10px] font-medium select-none sm:inline-flex", children: [_jsx("span", { className: "text-xs", children: "\u2318" }), "K"] })] }), _jsxs("div", { className: "ml-auto flex items-center gap-1", children: [_jsx(EnvironmentSwitcher, { className: "mr-1" }),
|
|
11
|
+
return (_jsx("header", { className: "sticky top-0 z-50 flex h-(--header-height) w-full shrink-0 items-center border-b border-border bg-background", children: _jsxs("div", { className: "flex w-full items-center gap-2 px-3 sm:px-4", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsxs("div", { className: "flex size-7 shrink-0 items-center justify-center overflow-hidden rounded-md bg-primary text-sm font-bold text-primary-foreground lowercase", children: [_jsx(BrandLogo, { role: "icon", mode: "light", className: "max-h-full max-w-full dark:hidden" }), _jsx(BrandLogo, { role: "icon", mode: "dark", className: "hidden max-h-full max-w-full dark:block" })] }), _jsxs("div", { className: "leading-tight", children: [_jsx("div", { className: "text-sm font-semibold", children: brand.name }), brand.sub && _jsx("div", { className: "text-[11px] text-muted-foreground", children: brand.sub })] })] }), _jsx(Separator, { orientation: "vertical", className: "mx-1 hidden data-[orientation=vertical]:h-5 md:block" }), _jsx(SidebarTrigger, { className: "text-muted-foreground" }), _jsxs(Button, { type: "button", variant: "outline", onClick: onSearchOpen, className: cn("relative ml-2 hidden h-8 max-w-md flex-1 justify-start border-input bg-muted/50 px-2.5 font-normal text-muted-foreground shadow-none hover:bg-muted/80 md:inline-flex"), children: [_jsx(Search, { className: "size-4" }), _jsx("span", { className: "truncate", children: searchPlaceholder }), _jsxs("kbd", { className: "pointer-events-none absolute top-1/2 right-2 hidden h-5 -translate-y-1/2 items-center gap-1 rounded border bg-background px-1.5 font-mono text-[10px] font-medium select-none sm:inline-flex", children: [_jsx("span", { className: "text-xs", children: "\u2318" }), "K"] })] }), _jsxs("div", { className: "ml-auto flex items-center gap-1", children: [_jsx(EnvironmentSwitcher, { className: "mr-1" }), chiefTrigger, notifications, _jsx(ThemeToggle, {}), profile ?? _jsx(OperatorProfileMenu, {})] })] }) }));
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=OperatorHeader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OperatorHeader.js","sourceRoot":"","sources":["../../src/header/OperatorHeader.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAkBb,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"OperatorHeader.js","sourceRoot":"","sources":["../../src/header/OperatorHeader.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAkBb,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAE5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAwB/C,MAAM,UAAU,cAAc,CAAC,EAC7B,OAAO,EACP,iBAAiB,GAAG,SAAS,EAC7B,YAAY,EACZ,YAAY,EACZ,aAAa,GACO;IACpB,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IAEzB,OAAO,CACL,iBAAQ,SAAS,EAAC,8GAA8G,YAC9H,eAAK,SAAS,EAAC,6CAA6C,aAK1D,eAAK,SAAS,EAAC,yBAAyB,aACtC,eAAK,SAAS,EAAC,4IAA4I,aACzJ,KAAC,SAAS,IAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,SAAS,EAAC,mCAAmC,GAAG,EACpF,KAAC,SAAS,IAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,EAAC,SAAS,EAAC,yCAAyC,GAAG,IACrF,EACN,eAAK,SAAS,EAAC,eAAe,aAC5B,cAAK,SAAS,EAAC,uBAAuB,YAAE,KAAK,CAAC,IAAI,GAAO,EACxD,KAAK,CAAC,GAAG,IAAI,cAAK,SAAS,EAAC,mCAAmC,YAAE,KAAK,CAAC,GAAG,GAAO,IAC9E,IACF,EAEN,KAAC,SAAS,IACR,WAAW,EAAC,UAAU,EACtB,SAAS,EAAC,sDAAsD,GAChE,EACF,KAAC,cAAc,IAAC,SAAS,EAAC,uBAAuB,GAAG,EAGpD,MAAC,MAAM,IACL,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,SAAS,EACjB,OAAO,EAAE,YAAY,EACrB,SAAS,EAAE,EAAE,CACX,uKAAuK,CACxK,aAED,KAAC,MAAM,IAAC,SAAS,EAAC,QAAQ,GAAG,EAC7B,eAAM,SAAS,EAAC,UAAU,YAAE,iBAAiB,GAAQ,EACrD,eAAK,SAAS,EAAC,8LAA8L,aAC3M,eAAM,SAAS,EAAC,SAAS,uBAAS,SAC9B,IACC,EAET,eAAK,SAAS,EAAC,iCAAiC,aAG9C,KAAC,mBAAmB,IAAC,SAAS,EAAC,MAAM,GAAG,EAEvC,YAAY,EAEZ,aAAa,EACd,KAAC,WAAW,KAAG,EACd,OAAO,IAAI,KAAC,mBAAmB,KAAG,IAC/B,IACF,GACC,CACV,CAAC;AACJ,CAAC"}
|
package/dist/icons/registry.d.ts
CHANGED
|
@@ -44,7 +44,13 @@ export declare const UNKNOWN_ICON: LucideIcon;
|
|
|
44
44
|
export declare const SHIPPED_ICON_FAMILY: "lucide";
|
|
45
45
|
/** A family this shell can actually render (today: exactly the shipped one). */
|
|
46
46
|
export type ShippedIconFamily = typeof SHIPPED_ICON_FAMILY;
|
|
47
|
-
/**
|
|
47
|
+
/**
|
|
48
|
+
* The built-in operator vocabulary (kebab-case Lucide names) — the common
|
|
49
|
+
* nouns of an operator console (infra, data, security, files, observability),
|
|
50
|
+
* so most Flavors declare nav without registering extensions. Unknown names
|
|
51
|
+
* still fail soft to `UNKNOWN_ICON`; products extend/override via the
|
|
52
|
+
* `icons` prop.
|
|
53
|
+
*/
|
|
48
54
|
export declare const OPERATOR_ICONS: IconRegistry;
|
|
49
55
|
export declare function resolveIconFamily(declared?: string): ShippedIconFamily;
|
|
50
56
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/icons/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/icons/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EA+BL,KAAK,UAAU,EAChB,MAAM,cAAc,CAAC;AAEtB,8DAA8D;AAC9D,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;AAEhE;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,UAAyB,CAAC;AAErD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAG,QAAiB,CAAC;AAErD,gFAAgF;AAChF,MAAM,MAAM,iBAAiB,GAAG,OAAO,mBAAmB,CAAC;AAE3D;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,EAAE,YA8B5B,CAAC;AAiBF,wBAAgB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAItE;AAOD;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,YAAY,EACzB,MAAM,CAAC,EAAE,MAAM,GACd,UAAU,CAGZ"}
|
package/dist/icons/registry.js
CHANGED
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
* a second family ships, it registers here and the Brand declaration
|
|
27
27
|
* starts selecting between built-in vocabularies.
|
|
28
28
|
*/
|
|
29
|
-
import { Activity, BarChart3, Bot, CircleDashed, Home, Plug, Waypoints, } from "lucide-react";
|
|
29
|
+
import { Activity, BarChart3, Bell, Book, Bot, Boxes, ChartLine, CircleDashed, Cloud, Cpu, Database, FileText, Folder, GitBranch, Globe, Home, Key, Layers, Package, Plug, Route, Search, Server, Settings, Shield, Terminal, Users, Waypoints, Workflow, Wrench, } from "lucide-react";
|
|
30
30
|
/**
|
|
31
31
|
* The deterministic unknown-icon fallback — the guaranteed end of every icon
|
|
32
32
|
* resolution. One neutral glyph (a dashed circle: visibly "unresolved",
|
|
@@ -40,14 +40,43 @@ export const UNKNOWN_ICON = CircleDashed;
|
|
|
40
40
|
* it ships and defaults the rest here.
|
|
41
41
|
*/
|
|
42
42
|
export const SHIPPED_ICON_FAMILY = "lucide";
|
|
43
|
-
/**
|
|
43
|
+
/**
|
|
44
|
+
* The built-in operator vocabulary (kebab-case Lucide names) — the common
|
|
45
|
+
* nouns of an operator console (infra, data, security, files, observability),
|
|
46
|
+
* so most Flavors declare nav without registering extensions. Unknown names
|
|
47
|
+
* still fail soft to `UNKNOWN_ICON`; products extend/override via the
|
|
48
|
+
* `icons` prop.
|
|
49
|
+
*/
|
|
44
50
|
export const OPERATOR_ICONS = {
|
|
45
51
|
home: Home,
|
|
46
52
|
bot: Bot,
|
|
47
53
|
plug: Plug,
|
|
54
|
+
wrench: Wrench,
|
|
55
|
+
boxes: Boxes,
|
|
48
56
|
activity: Activity,
|
|
49
57
|
"bar-chart-3": BarChart3,
|
|
58
|
+
route: Route,
|
|
50
59
|
waypoints: Waypoints,
|
|
60
|
+
settings: Settings,
|
|
61
|
+
users: Users,
|
|
62
|
+
database: Database,
|
|
63
|
+
server: Server,
|
|
64
|
+
shield: Shield,
|
|
65
|
+
key: Key,
|
|
66
|
+
globe: Globe,
|
|
67
|
+
folder: Folder,
|
|
68
|
+
"file-text": FileText,
|
|
69
|
+
search: Search,
|
|
70
|
+
bell: Bell,
|
|
71
|
+
layers: Layers,
|
|
72
|
+
terminal: Terminal,
|
|
73
|
+
cpu: Cpu,
|
|
74
|
+
cloud: Cloud,
|
|
75
|
+
package: Package,
|
|
76
|
+
"git-branch": GitBranch,
|
|
77
|
+
workflow: Workflow,
|
|
78
|
+
book: Book,
|
|
79
|
+
"chart-line": ChartLine,
|
|
51
80
|
};
|
|
52
81
|
/** Built-in vocabularies by family — where a second shipped family registers. */
|
|
53
82
|
const FAMILY_REGISTRIES = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/icons/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EACL,QAAQ,EACR,SAAS,EACT,GAAG,EACH,YAAY,EACZ,IAAI,EACJ,IAAI,EACJ,SAAS,
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/icons/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EACL,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,KAAK,EACL,SAAS,EACT,YAAY,EACZ,KAAK,EACL,GAAG,EACH,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EACL,IAAI,EACJ,GAAG,EACH,MAAM,EACN,OAAO,EACP,IAAI,EACJ,KAAK,EACL,MAAM,EACN,MAAM,EACN,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,KAAK,EACL,SAAS,EACT,QAAQ,EACR,MAAM,GAEP,MAAM,cAAc,CAAC;AAKtB;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAe,YAAY,CAAC;AAErD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAiB,CAAC;AAKrD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAiB;IAC1C,IAAI,EAAE,IAAI;IACV,GAAG,EAAE,GAAG;IACR,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,KAAK;IACZ,QAAQ,EAAE,QAAQ;IAClB,aAAa,EAAE,SAAS;IACxB,KAAK,EAAE,KAAK;IACZ,SAAS,EAAE,SAAS;IACpB,QAAQ,EAAE,QAAQ;IAClB,KAAK,EAAE,KAAK;IACZ,QAAQ,EAAE,QAAQ;IAClB,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,MAAM;IACd,GAAG,EAAE,GAAG;IACR,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,MAAM;IACd,WAAW,EAAE,QAAQ;IACrB,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,GAAG;IACR,KAAK,EAAE,KAAK;IACZ,OAAO,EAAE,OAAO;IAChB,YAAY,EAAE,SAAS;IACvB,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,IAAI;IACV,YAAY,EAAE,SAAS;CACxB,CAAC;AAEF,iFAAiF;AACjF,MAAM,iBAAiB,GAAsD;IAC3E,CAAC,mBAAmB,CAAC,EAAE,cAAc;CACtC,CAAC;AAEF;;;;;GAKG;AACH,uEAAuE;AACvE,MAAM,MAAM,GAAG,CAAC,MAAc,EAAE,GAAW,EAAW,EAAE,CACtD,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEpD,MAAM,UAAU,iBAAiB,CAAC,QAAiB;IACjD,OAAO,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC;QAClE,CAAC,CAAE,QAA8B;QACjC,CAAC,CAAC,mBAAmB,CAAC;AAC1B,CAAC;AAED,wCAAwC;AACxC,SAAS,MAAM,CAAC,QAAkC,EAAE,IAAY;IAC9D,OAAO,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACvF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CACzB,IAAY,EACZ,UAAyB,EACzB,MAAe;IAEf,MAAM,QAAQ,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9D,OAAO,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,YAAY,CAAC;AAC5E,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -14,7 +14,11 @@
|
|
|
14
14
|
* docs/design/frontend-platform-doctrine.md.
|
|
15
15
|
*/
|
|
16
16
|
export { OperatorShell } from "./frame/OperatorShell.js";
|
|
17
|
-
export type { OperatorShellProps } from "./frame/OperatorShell.js";
|
|
17
|
+
export type { OperatorShellChrome, OperatorShellProps, } from "./frame/OperatorShell.js";
|
|
18
|
+
export { ComposedWorkspace } from "./frame/ComposedWorkspace.js";
|
|
19
|
+
export type { ComposedWorkspaceProps } from "./frame/ComposedWorkspace.js";
|
|
20
|
+
export type { SessionAdapter, KeepCompositionRequest, KeptComposition, KeptCompositionSummary, OpenedComposition, CompositionSource, } from "./workspace/session-adapter.js";
|
|
21
|
+
export type { ComposedMeta } from "./chief/use-chief-turn.js";
|
|
18
22
|
export { OperatorHeader } from "./header/OperatorHeader.js";
|
|
19
23
|
export type { OperatorHeaderProps } from "./header/OperatorHeader.js";
|
|
20
24
|
export { OperatorProfileMenu } from "./header/OperatorProfileMenu.js";
|
|
@@ -30,43 +34,52 @@ export type { IconRegistry, ShippedIconFamily } from "./icons/registry.js";
|
|
|
30
34
|
export { CommandPalette } from "./palette/CommandPalette.js";
|
|
31
35
|
export type { CommandPaletteProps } from "./palette/CommandPalette.js";
|
|
32
36
|
export { derivePaletteGroups } from "./palette/commands.js";
|
|
33
|
-
export type { PaletteAction, PaletteCommand, PaletteGroup } from "./palette/commands.js";
|
|
37
|
+
export type { PaletteAction, PaletteCommand, PaletteGroup, } from "./palette/commands.js";
|
|
34
38
|
export { isSearchResult, permittedSearchSources, querySearchSources, } from "./palette/search-sources.js";
|
|
35
39
|
export type { SearchResult, SearchResultAction, SearchResultGroup, SearchSource, } from "./palette/search-sources.js";
|
|
36
40
|
export { useSearchResults } from "./palette/use-search-results.js";
|
|
37
41
|
export type { OperatorCommandGroup, OperatorCommandItem, OperatorFlavor, OperatorFlavorChief, OperatorFlavorInspector, OperatorFlavorProduct, OperatorFlavorWorkspace, OperatorNavGroup, OperatorNavItem, } from "./flavor/types.js";
|
|
38
|
-
export { InspectorProvider, useInspector } from "./inspector/InspectorProvider.js";
|
|
42
|
+
export { InspectorProvider, useInspector, } from "./inspector/InspectorProvider.js";
|
|
39
43
|
export type { InspectorProviderProps } from "./inspector/InspectorProvider.js";
|
|
40
44
|
export { resolveInspectorView } from "./inspector/types.js";
|
|
41
45
|
export type { InspectorApi, InspectorOpenRequest, InspectorView, InspectorViewProps, InspectorViewRegistry, } from "./inspector/types.js";
|
|
42
|
-
export { ChiefRegion } from "./chief/ChiefRegion.js";
|
|
43
|
-
export type { ChiefRegionProps } from "./chief/ChiefRegion.js";
|
|
46
|
+
export { ChiefRegion, resolveChiefBehavior } from "./chief/ChiefRegion.js";
|
|
47
|
+
export type { ChiefBehavior, ChiefRegionProps } from "./chief/ChiefRegion.js";
|
|
44
48
|
export { ChiefPanel } from "./chief/ChiefPanel.js";
|
|
45
49
|
export type { ChiefPanelProps } from "./chief/ChiefPanel.js";
|
|
46
50
|
export { ChiefDrawer } from "./chief/ChiefDrawer.js";
|
|
47
51
|
export type { ChiefDrawerProps } from "./chief/ChiefDrawer.js";
|
|
48
52
|
export { ChiefSession } from "./chief/ChiefSession.js";
|
|
49
53
|
export type { ChiefSessionProps } from "./chief/ChiefSession.js";
|
|
54
|
+
export { ChiefTrigger } from "./chief/ChiefTrigger.js";
|
|
55
|
+
export type { ChiefTriggerProps } from "./chief/ChiefTrigger.js";
|
|
56
|
+
export { ChiefMarkdown } from "./chief/ChiefMarkdown.js";
|
|
57
|
+
export type { ChiefMarkdownProps } from "./chief/ChiefMarkdown.js";
|
|
58
|
+
export { resolveChiefTitle, resolvePersonalityAccent, resolvePersonalityIcon, } from "./chief/personality-display.js";
|
|
59
|
+
export type { PersonalityDisplay } from "./chief/personality-display.js";
|
|
50
60
|
export { useChiefTurn } from "./chief/use-chief-turn.js";
|
|
51
|
-
export type { ChiefTurnMeta, ChiefTurnSession, UseChiefTurnOptions, } from "./chief/use-chief-turn.js";
|
|
61
|
+
export type { ChiefTurnEntry, ChiefTurnMeta, ChiefTurnSession, UseChiefTurnOptions, } from "./chief/use-chief-turn.js";
|
|
62
|
+
export { adoptConversationId, conversationStorageKey, getOrMintConversationId, subscribeConversationId, } from "./chief/conversation-identity.js";
|
|
63
|
+
export type { ConversationAdapter, ConversationThreadSummary, ConversationTurn, ConversationTurnOutcome, } from "./chief/conversation-adapter.js";
|
|
64
|
+
export type { ChiefWorkspacesRegion } from "./chief/ChiefSession.js";
|
|
52
65
|
export { CHIEF_SHORTCUT_KEY, CHIEF_SHORTCUT_LABEL, isChiefShortcut, useChiefShortcut, } from "./chief/use-chief-shortcut.js";
|
|
53
66
|
export { directiveToHref } from "./chief/directive.js";
|
|
54
|
-
export type { TurnAdapter, TurnAdapterHandle, TurnAdapterRequest, } from "./chief/turn-adapter.js";
|
|
55
|
-
export { WorkspaceHost, WorkspaceUnavailable } from "./workspace/WorkspaceHost.js";
|
|
67
|
+
export type { TurnAdapter, TurnAdapterHandle, TurnAdapterRequest, TurnContext, } from "./chief/turn-adapter.js";
|
|
68
|
+
export { WorkspaceHost, WorkspaceUnavailable, } from "./workspace/WorkspaceHost.js";
|
|
56
69
|
export type { WorkspaceHostProps } from "./workspace/WorkspaceHost.js";
|
|
57
70
|
export { createWorkspaceRegistry } from "./workspace/registry.js";
|
|
58
71
|
export type { WorkspaceRegistry } from "./workspace/registry.js";
|
|
59
72
|
export { WORKSPACE_TYPE_IDS, isWorkspaceTypeId } from "./workspace/types.js";
|
|
60
73
|
export type { AnyWorkspaceType, WorkspaceComponentProps, WorkspaceType, WorkspaceTypeId, } from "./workspace/types.js";
|
|
61
|
-
export { CanvasWorkspace, canvasWorkspaceType } from "./workspace/CanvasWorkspace.js";
|
|
74
|
+
export { CanvasWorkspace, canvasWorkspaceType, } from "./workspace/CanvasWorkspace.js";
|
|
62
75
|
export type { CanvasWorkspaceInput, CanvasWorkspaceSlots, } from "./workspace/CanvasWorkspace.js";
|
|
63
76
|
export { DashboardWorkspace, dashboardWorkspaceType, } from "./workspace/DashboardWorkspace.js";
|
|
64
77
|
export type { DashboardWorkspaceInput, DashboardWorkspaceSection, DashboardWorkspaceSlots, DashboardWorkspaceStat, } from "./workspace/DashboardWorkspace.js";
|
|
65
|
-
export { TableWorkspace, tableWorkspaceType } from "./workspace/TableWorkspace.js";
|
|
78
|
+
export { TableWorkspace, tableWorkspaceType, } from "./workspace/TableWorkspace.js";
|
|
66
79
|
export type { TableWorkspaceInput, TableWorkspaceSlots, } from "./workspace/TableWorkspace.js";
|
|
67
80
|
export { FormWorkspace, formWorkspaceType } from "./workspace/FormWorkspace.js";
|
|
68
81
|
export type { FormWorkspaceField, FormWorkspaceInput, FormWorkspaceSection, FormWorkspaceSlots, } from "./workspace/FormWorkspace.js";
|
|
69
|
-
export { GraphWorkspace, graphWorkspaceType } from "./workspace/GraphWorkspace.js";
|
|
82
|
+
export { GraphWorkspace, graphWorkspaceType, } from "./workspace/GraphWorkspace.js";
|
|
70
83
|
export type { GraphWorkspaceEdge, GraphWorkspaceInput, GraphWorkspaceKind, GraphWorkspaceNode, GraphWorkspaceNodeAttribute, GraphWorkspaceSlots, } from "./workspace/GraphWorkspace.js";
|
|
71
84
|
export { allowAllPermissions, collectPermissionRefs, evaluatePermissions, gateStatus, isPermitted, toGateStatus, unknownPermissions, } from "./guard/permissions.js";
|
|
72
85
|
export type { PermissionDecision, PermissionEvaluation, PermissionGateStatus, PermissionResolver, SyncPermissionResolver, } from "./guard/permissions.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|