pilotswarm 0.0.1 → 0.4.1
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/README.md +37 -1
- package/mcp/README.md +484 -0
- package/mcp/dist/bin/pilotswarm-mcp.d.ts +3 -0
- package/mcp/dist/bin/pilotswarm-mcp.d.ts.map +1 -0
- package/mcp/dist/bin/pilotswarm-mcp.js +367 -0
- package/mcp/dist/bin/pilotswarm-mcp.js.map +1 -0
- package/mcp/dist/src/auth.d.ts +7 -0
- package/mcp/dist/src/auth.d.ts.map +1 -0
- package/mcp/dist/src/auth.js +99 -0
- package/mcp/dist/src/auth.js.map +1 -0
- package/mcp/dist/src/context.d.ts +48 -0
- package/mcp/dist/src/context.d.ts.map +1 -0
- package/mcp/dist/src/context.js +83 -0
- package/mcp/dist/src/context.js.map +1 -0
- package/mcp/dist/src/index.d.ts +4 -0
- package/mcp/dist/src/index.d.ts.map +1 -0
- package/mcp/dist/src/index.js +3 -0
- package/mcp/dist/src/index.js.map +1 -0
- package/mcp/dist/src/prompts/skills.d.ts +4 -0
- package/mcp/dist/src/prompts/skills.d.ts.map +1 -0
- package/mcp/dist/src/prompts/skills.js +11 -0
- package/mcp/dist/src/prompts/skills.js.map +1 -0
- package/mcp/dist/src/resources/agents.d.ts +4 -0
- package/mcp/dist/src/resources/agents.d.ts.map +1 -0
- package/mcp/dist/src/resources/agents.js +64 -0
- package/mcp/dist/src/resources/agents.js.map +1 -0
- package/mcp/dist/src/resources/facts.d.ts +4 -0
- package/mcp/dist/src/resources/facts.d.ts.map +1 -0
- package/mcp/dist/src/resources/facts.js +125 -0
- package/mcp/dist/src/resources/facts.js.map +1 -0
- package/mcp/dist/src/resources/models.d.ts +4 -0
- package/mcp/dist/src/resources/models.d.ts.map +1 -0
- package/mcp/dist/src/resources/models.js +43 -0
- package/mcp/dist/src/resources/models.js.map +1 -0
- package/mcp/dist/src/resources/sessions.d.ts +4 -0
- package/mcp/dist/src/resources/sessions.d.ts.map +1 -0
- package/mcp/dist/src/resources/sessions.js +190 -0
- package/mcp/dist/src/resources/sessions.js.map +1 -0
- package/mcp/dist/src/resources/subscriptions.d.ts +9 -0
- package/mcp/dist/src/resources/subscriptions.d.ts.map +1 -0
- package/mcp/dist/src/resources/subscriptions.js +157 -0
- package/mcp/dist/src/resources/subscriptions.js.map +1 -0
- package/mcp/dist/src/server.d.ts +4 -0
- package/mcp/dist/src/server.d.ts.map +1 -0
- package/mcp/dist/src/server.js +59 -0
- package/mcp/dist/src/server.js.map +1 -0
- package/mcp/dist/src/tools/agents.d.ts +4 -0
- package/mcp/dist/src/tools/agents.d.ts.map +1 -0
- package/mcp/dist/src/tools/agents.js +317 -0
- package/mcp/dist/src/tools/agents.js.map +1 -0
- package/mcp/dist/src/tools/facts.d.ts +4 -0
- package/mcp/dist/src/tools/facts.d.ts.map +1 -0
- package/mcp/dist/src/tools/facts.js +151 -0
- package/mcp/dist/src/tools/facts.js.map +1 -0
- package/mcp/dist/src/tools/models.d.ts +4 -0
- package/mcp/dist/src/tools/models.d.ts.map +1 -0
- package/mcp/dist/src/tools/models.js +256 -0
- package/mcp/dist/src/tools/models.js.map +1 -0
- package/mcp/dist/src/tools/sessions.d.ts +4 -0
- package/mcp/dist/src/tools/sessions.d.ts.map +1 -0
- package/mcp/dist/src/tools/sessions.js +606 -0
- package/mcp/dist/src/tools/sessions.js.map +1 -0
- package/mcp/dist/src/util/command.d.ts +52 -0
- package/mcp/dist/src/util/command.d.ts.map +1 -0
- package/mcp/dist/src/util/command.js +78 -0
- package/mcp/dist/src/util/command.js.map +1 -0
- package/package.json +82 -6
- package/tui/README.md +35 -0
- package/tui/bin/tui.js +30 -0
- package/tui/plugins/.mcp.json +7 -0
- package/tui/plugins/plugin.json +13 -0
- package/tui/plugins/session-policy.json +8 -0
- package/tui/src/app.js +850 -0
- package/tui/src/auth/cli.js +111 -0
- package/tui/src/auth/entra-auth.js +218 -0
- package/tui/src/bootstrap-env.js +176 -0
- package/tui/src/embedded-workers.js +79 -0
- package/tui/src/http-transport-host.js +106 -0
- package/tui/src/index.js +340 -0
- package/tui/src/node-sdk-transport.js +1794 -0
- package/tui/src/platform.js +984 -0
- package/tui/src/plugin-config.js +273 -0
- package/tui/src/portal.js +7 -0
- package/tui/src/version.js +7 -0
- package/tui/tui-splash-mobile.txt +7 -0
- package/tui/tui-splash.txt +11 -0
- package/ui/core/README.md +6 -0
- package/ui/core/src/commands.js +93 -0
- package/ui/core/src/context-usage.js +212 -0
- package/ui/core/src/controller.js +6201 -0
- package/ui/core/src/formatting.js +1036 -0
- package/ui/core/src/history.js +950 -0
- package/ui/core/src/index.js +13 -0
- package/ui/core/src/layout.js +332 -0
- package/ui/core/src/reducer.js +1952 -0
- package/ui/core/src/selectors.js +5419 -0
- package/ui/core/src/session-errors.js +14 -0
- package/ui/core/src/session-tree.js +151 -0
- package/ui/core/src/state.js +251 -0
- package/ui/core/src/store.js +23 -0
- package/ui/core/src/system-titles.js +24 -0
- package/ui/core/src/themes/catppuccin-mocha.js +56 -0
- package/ui/core/src/themes/cobalt2.js +56 -0
- package/ui/core/src/themes/dark-high-contrast.js +56 -0
- package/ui/core/src/themes/daylight.js +62 -0
- package/ui/core/src/themes/dracula.js +56 -0
- package/ui/core/src/themes/github-dark.js +56 -0
- package/ui/core/src/themes/github-light.js +59 -0
- package/ui/core/src/themes/gruvbox-dark.js +56 -0
- package/ui/core/src/themes/hacker-x-matrix.js +56 -0
- package/ui/core/src/themes/hacker-x-orion-prime.js +56 -0
- package/ui/core/src/themes/helpers.js +79 -0
- package/ui/core/src/themes/high-contrast-mono.js +59 -0
- package/ui/core/src/themes/index.js +52 -0
- package/ui/core/src/themes/light-high-contrast.js +62 -0
- package/ui/core/src/themes/noctis-obscuro.js +56 -0
- package/ui/core/src/themes/noctis.js +56 -0
- package/ui/core/src/themes/paper-ink.js +62 -0
- package/ui/core/src/themes/solarized-ops.js +59 -0
- package/ui/core/src/themes/terminal-green.js +59 -0
- package/ui/core/src/themes/tokyo-night.js +56 -0
- package/ui/react/README.md +5 -0
- package/ui/react/src/chat-status.js +39 -0
- package/ui/react/src/components.js +1989 -0
- package/ui/react/src/index.js +4 -0
- package/ui/react/src/platform.js +15 -0
- package/ui/react/src/use-controller-state.js +38 -0
- package/ui/react/src/web-app.js +4457 -0
- package/web/README.md +198 -0
- package/web/api/router.js +196 -0
- package/web/api/ws.js +152 -0
- package/web/auth/authz/engine.js +204 -0
- package/web/auth/config.js +115 -0
- package/web/auth/index.js +175 -0
- package/web/auth/normalize/entra.js +22 -0
- package/web/auth/providers/entra.js +76 -0
- package/web/auth/providers/none.js +24 -0
- package/web/auth.js +10 -0
- package/web/bin/serve.js +53 -0
- package/web/config.js +20 -0
- package/web/dist/app.js +469 -0
- package/web/dist/assets/index-DmGOcKR-.css +1 -0
- package/web/dist/assets/index-xJ8IzIZY.js +24 -0
- package/web/dist/assets/msal-CytV9RFv.js +7 -0
- package/web/dist/assets/pilotswarm-D9pEmenA.js +90 -0
- package/web/dist/assets/react-CEPDSRB6.js +1 -0
- package/web/dist/index.html +16 -0
- package/web/runtime.js +455 -0
- package/web/server.js +276 -0
- package/index.js +0 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export * from "./commands.js";
|
|
2
|
+
export * from "./context-usage.js";
|
|
3
|
+
export * from "./formatting.js";
|
|
4
|
+
export * from "./history.js";
|
|
5
|
+
export * from "./layout.js";
|
|
6
|
+
export * from "./session-tree.js";
|
|
7
|
+
export * from "./state.js";
|
|
8
|
+
export * from "./reducer.js";
|
|
9
|
+
export * from "./store.js";
|
|
10
|
+
export * from "./selectors.js";
|
|
11
|
+
export * from "./controller.js";
|
|
12
|
+
export { isThemeLight } from "./themes/helpers.js";
|
|
13
|
+
export * from "./themes/index.js";
|
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
import { FOCUS_REGIONS } from "./commands.js";
|
|
2
|
+
|
|
3
|
+
export const DEFAULT_LEFT_PANE_RATIO = 0.7;
|
|
4
|
+
export const MIN_LEFT_WIDTH = 30;
|
|
5
|
+
export const MIN_RIGHT_WIDTH = 36;
|
|
6
|
+
export const COLLAPSE_LEFT_THRESHOLD = 18;
|
|
7
|
+
export const COLLAPSE_RIGHT_THRESHOLD = 18;
|
|
8
|
+
export const PANE_GAP_X = 0;
|
|
9
|
+
export const PANE_GAP_Y = 0;
|
|
10
|
+
export const MAX_PROMPT_INPUT_ROWS = 3;
|
|
11
|
+
export const MIN_SESSION_PANE_HEIGHT = 6;
|
|
12
|
+
export const MIN_CHAT_PANE_HEIGHT = 10;
|
|
13
|
+
export const DEFAULT_SESSION_PANE_RATIO = 0.25;
|
|
14
|
+
export const MAX_SESSION_PANE_WINDOW_RATIO = 0.5;
|
|
15
|
+
export const MIN_ACTIVITY_PANE_HEIGHT = 6;
|
|
16
|
+
export const MIN_INSPECTOR_PANE_HEIGHT = 10;
|
|
17
|
+
export const DEFAULT_ACTIVITY_PANE_RATIO = 0.336;
|
|
18
|
+
export const COLLAPSE_ACTIVITY_THRESHOLD = MIN_ACTIVITY_PANE_HEIGHT;
|
|
19
|
+
export const COLLAPSE_INSPECTOR_THRESHOLD = MIN_INSPECTOR_PANE_HEIGHT;
|
|
20
|
+
export const COLLAPSE_SESSION_THRESHOLD = MIN_SESSION_PANE_HEIGHT;
|
|
21
|
+
export const COLLAPSE_CHAT_THRESHOLD = MIN_CHAT_PANE_HEIGHT;
|
|
22
|
+
|
|
23
|
+
function clamp(value, min, max) {
|
|
24
|
+
return Math.max(min, Math.min(max, value));
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function normalizeFullscreenPane(fullscreenPane) {
|
|
28
|
+
return [
|
|
29
|
+
FOCUS_REGIONS.SESSIONS,
|
|
30
|
+
FOCUS_REGIONS.CHAT,
|
|
31
|
+
FOCUS_REGIONS.INSPECTOR,
|
|
32
|
+
FOCUS_REGIONS.ACTIVITY,
|
|
33
|
+
].includes(fullscreenPane)
|
|
34
|
+
? fullscreenPane
|
|
35
|
+
: null;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export function normalizeViewport(viewport = {}) {
|
|
39
|
+
return {
|
|
40
|
+
width: Math.max(40, Number(viewport.width) || 120),
|
|
41
|
+
height: Math.max(18, Number(viewport.height) || 40),
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export function getPromptInputRows(prompt = "") {
|
|
46
|
+
const explicitLines = String(prompt || "").split("\n").length;
|
|
47
|
+
return clamp(explicitLines, 1, MAX_PROMPT_INPUT_ROWS);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export function getBaseSessionPaneHeight(bodyHeight) {
|
|
51
|
+
return Math.max(MIN_SESSION_PANE_HEIGHT, Math.floor(bodyHeight * DEFAULT_SESSION_PANE_RATIO));
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export function getMaxSessionPaneHeight(totalHeight, bodyHeight) {
|
|
55
|
+
const maxByWindow = Math.floor(Math.max(0, Number(totalHeight) || 0) * MAX_SESSION_PANE_WINDOW_RATIO);
|
|
56
|
+
const maxByChatMinimum = Math.max(MIN_SESSION_PANE_HEIGHT, bodyHeight - MIN_CHAT_PANE_HEIGHT);
|
|
57
|
+
return Math.max(MIN_SESSION_PANE_HEIGHT, Math.min(maxByChatMinimum, maxByWindow));
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export function computeLegacyLayout(viewport, paneAdjust = 0, promptRows = 1, sessionPaneAdjust = 0, activityPaneAdjust = 0, fullscreenPane = null) {
|
|
61
|
+
const safeViewport = normalizeViewport(viewport);
|
|
62
|
+
const totalWidth = safeViewport.width;
|
|
63
|
+
const totalHeight = safeViewport.height;
|
|
64
|
+
const safePromptRows = clamp(Number(promptRows) || 1, 1, MAX_PROMPT_INPUT_ROWS);
|
|
65
|
+
const safeFullscreenPane = normalizeFullscreenPane(fullscreenPane);
|
|
66
|
+
const reservedRows = 5 + safePromptRows;
|
|
67
|
+
const bodyHeight = Math.max(18, totalHeight - reservedRows);
|
|
68
|
+
const baseLeftWidth = Math.floor(totalWidth * DEFAULT_LEFT_PANE_RATIO);
|
|
69
|
+
const desiredLeftWidth = baseLeftWidth + (Number(paneAdjust) || 0);
|
|
70
|
+
const desiredRightWidth = totalWidth - desiredLeftWidth - PANE_GAP_X;
|
|
71
|
+
|
|
72
|
+
let leftHidden = false;
|
|
73
|
+
let rightHidden = false;
|
|
74
|
+
|
|
75
|
+
if (desiredLeftWidth <= COLLAPSE_LEFT_THRESHOLD && desiredRightWidth > COLLAPSE_RIGHT_THRESHOLD) {
|
|
76
|
+
leftHidden = true;
|
|
77
|
+
} else if (desiredRightWidth <= COLLAPSE_RIGHT_THRESHOLD && desiredLeftWidth > COLLAPSE_LEFT_THRESHOLD) {
|
|
78
|
+
rightHidden = true;
|
|
79
|
+
} else if (desiredLeftWidth <= COLLAPSE_LEFT_THRESHOLD && desiredRightWidth <= COLLAPSE_RIGHT_THRESHOLD) {
|
|
80
|
+
rightHidden = paneAdjust >= 0;
|
|
81
|
+
leftHidden = !rightHidden;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
let leftWidth;
|
|
85
|
+
let rightWidth;
|
|
86
|
+
|
|
87
|
+
if (leftHidden) {
|
|
88
|
+
leftWidth = 0;
|
|
89
|
+
rightWidth = totalWidth;
|
|
90
|
+
} else if (rightHidden) {
|
|
91
|
+
leftWidth = totalWidth;
|
|
92
|
+
rightWidth = 0;
|
|
93
|
+
} else {
|
|
94
|
+
leftWidth = clamp(desiredLeftWidth, MIN_LEFT_WIDTH, totalWidth - MIN_RIGHT_WIDTH - PANE_GAP_X);
|
|
95
|
+
rightWidth = Math.max(MIN_RIGHT_WIDTH, totalWidth - leftWidth - PANE_GAP_X);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
const baseSessionPaneHeight = getBaseSessionPaneHeight(bodyHeight);
|
|
99
|
+
const desiredSessionPaneHeight = baseSessionPaneHeight + (Number(sessionPaneAdjust) || 0);
|
|
100
|
+
const desiredChatPaneHeight = bodyHeight - desiredSessionPaneHeight;
|
|
101
|
+
|
|
102
|
+
let sessionHidden = false;
|
|
103
|
+
let chatHidden = false;
|
|
104
|
+
|
|
105
|
+
if (desiredChatPaneHeight <= COLLAPSE_CHAT_THRESHOLD && desiredSessionPaneHeight > COLLAPSE_SESSION_THRESHOLD) {
|
|
106
|
+
chatHidden = true;
|
|
107
|
+
} else if (desiredSessionPaneHeight <= COLLAPSE_SESSION_THRESHOLD && desiredChatPaneHeight > COLLAPSE_CHAT_THRESHOLD) {
|
|
108
|
+
sessionHidden = true;
|
|
109
|
+
} else if (desiredChatPaneHeight <= COLLAPSE_CHAT_THRESHOLD && desiredSessionPaneHeight <= COLLAPSE_SESSION_THRESHOLD) {
|
|
110
|
+
chatHidden = (Number(sessionPaneAdjust) || 0) >= 0;
|
|
111
|
+
sessionHidden = !chatHidden;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
let sessionPaneHeight;
|
|
115
|
+
let chatPaneHeight;
|
|
116
|
+
if (sessionHidden) {
|
|
117
|
+
sessionPaneHeight = 0;
|
|
118
|
+
chatPaneHeight = bodyHeight;
|
|
119
|
+
} else if (chatHidden) {
|
|
120
|
+
sessionPaneHeight = bodyHeight;
|
|
121
|
+
chatPaneHeight = 0;
|
|
122
|
+
} else {
|
|
123
|
+
const maxSessionPaneHeight = getMaxSessionPaneHeight(totalHeight, bodyHeight);
|
|
124
|
+
sessionPaneHeight = clamp(
|
|
125
|
+
desiredSessionPaneHeight,
|
|
126
|
+
MIN_SESSION_PANE_HEIGHT,
|
|
127
|
+
maxSessionPaneHeight,
|
|
128
|
+
);
|
|
129
|
+
chatPaneHeight = Math.max(MIN_CHAT_PANE_HEIGHT, bodyHeight - sessionPaneHeight);
|
|
130
|
+
}
|
|
131
|
+
const baseActivityPaneHeight = Math.max(MIN_ACTIVITY_PANE_HEIGHT, Math.floor(bodyHeight * DEFAULT_ACTIVITY_PANE_RATIO));
|
|
132
|
+
const desiredActivityPaneHeight = baseActivityPaneHeight + (Number(activityPaneAdjust) || 0);
|
|
133
|
+
const desiredInspectorPaneHeight = bodyHeight - desiredActivityPaneHeight;
|
|
134
|
+
|
|
135
|
+
let inspectorHidden = false;
|
|
136
|
+
let activityHidden = false;
|
|
137
|
+
|
|
138
|
+
if (desiredInspectorPaneHeight <= COLLAPSE_INSPECTOR_THRESHOLD && desiredActivityPaneHeight > COLLAPSE_ACTIVITY_THRESHOLD) {
|
|
139
|
+
inspectorHidden = true;
|
|
140
|
+
} else if (desiredActivityPaneHeight <= COLLAPSE_ACTIVITY_THRESHOLD && desiredInspectorPaneHeight > COLLAPSE_INSPECTOR_THRESHOLD) {
|
|
141
|
+
activityHidden = true;
|
|
142
|
+
} else if (desiredInspectorPaneHeight <= COLLAPSE_INSPECTOR_THRESHOLD && desiredActivityPaneHeight <= COLLAPSE_ACTIVITY_THRESHOLD) {
|
|
143
|
+
inspectorHidden = (Number(activityPaneAdjust) || 0) >= 0;
|
|
144
|
+
activityHidden = !inspectorHidden;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
let activityPaneHeight;
|
|
148
|
+
let inspectorPaneHeight;
|
|
149
|
+
if (inspectorHidden) {
|
|
150
|
+
activityPaneHeight = bodyHeight;
|
|
151
|
+
inspectorPaneHeight = 0;
|
|
152
|
+
} else if (activityHidden) {
|
|
153
|
+
inspectorPaneHeight = bodyHeight;
|
|
154
|
+
activityPaneHeight = 0;
|
|
155
|
+
} else {
|
|
156
|
+
activityPaneHeight = clamp(
|
|
157
|
+
desiredActivityPaneHeight,
|
|
158
|
+
MIN_ACTIVITY_PANE_HEIGHT,
|
|
159
|
+
Math.max(MIN_ACTIVITY_PANE_HEIGHT, bodyHeight - MIN_INSPECTOR_PANE_HEIGHT),
|
|
160
|
+
);
|
|
161
|
+
inspectorPaneHeight = Math.max(MIN_INSPECTOR_PANE_HEIGHT, bodyHeight - activityPaneHeight);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
return {
|
|
165
|
+
viewport: safeViewport,
|
|
166
|
+
totalWidth,
|
|
167
|
+
totalHeight,
|
|
168
|
+
reservedRows,
|
|
169
|
+
bodyHeight,
|
|
170
|
+
promptRows: safePromptRows,
|
|
171
|
+
fullscreenPane: safeFullscreenPane,
|
|
172
|
+
paneAdjust: Number(paneAdjust) || 0,
|
|
173
|
+
sessionPaneAdjust: Number(sessionPaneAdjust) || 0,
|
|
174
|
+
activityPaneAdjust: Number(activityPaneAdjust) || 0,
|
|
175
|
+
leftHidden,
|
|
176
|
+
rightHidden,
|
|
177
|
+
inspectorHidden,
|
|
178
|
+
activityHidden,
|
|
179
|
+
sessionHidden,
|
|
180
|
+
chatHidden,
|
|
181
|
+
leftWidth,
|
|
182
|
+
rightWidth,
|
|
183
|
+
sessionPaneHeight,
|
|
184
|
+
chatPaneHeight,
|
|
185
|
+
activityPaneHeight,
|
|
186
|
+
inspectorPaneHeight,
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
export function getFocusOrderForLayout(layout) {
|
|
191
|
+
if (layout?.fullscreenPane) {
|
|
192
|
+
return [layout.fullscreenPane, FOCUS_REGIONS.PROMPT];
|
|
193
|
+
}
|
|
194
|
+
if (layout?.leftHidden) {
|
|
195
|
+
return [FOCUS_REGIONS.INSPECTOR, FOCUS_REGIONS.ACTIVITY, FOCUS_REGIONS.PROMPT];
|
|
196
|
+
}
|
|
197
|
+
if (layout?.rightHidden) {
|
|
198
|
+
const left = layout?.sessionHidden
|
|
199
|
+
? [FOCUS_REGIONS.CHAT]
|
|
200
|
+
: layout?.chatHidden
|
|
201
|
+
? [FOCUS_REGIONS.SESSIONS]
|
|
202
|
+
: [FOCUS_REGIONS.SESSIONS, FOCUS_REGIONS.CHAT];
|
|
203
|
+
return [...left, FOCUS_REGIONS.PROMPT];
|
|
204
|
+
}
|
|
205
|
+
if (layout?.sessionHidden) {
|
|
206
|
+
const right = layout?.inspectorHidden
|
|
207
|
+
? [FOCUS_REGIONS.ACTIVITY]
|
|
208
|
+
: layout?.activityHidden
|
|
209
|
+
? [FOCUS_REGIONS.INSPECTOR]
|
|
210
|
+
: [FOCUS_REGIONS.INSPECTOR, FOCUS_REGIONS.ACTIVITY];
|
|
211
|
+
return [FOCUS_REGIONS.CHAT, ...right, FOCUS_REGIONS.PROMPT];
|
|
212
|
+
}
|
|
213
|
+
if (layout?.chatHidden) {
|
|
214
|
+
const right = layout?.inspectorHidden
|
|
215
|
+
? [FOCUS_REGIONS.ACTIVITY]
|
|
216
|
+
: layout?.activityHidden
|
|
217
|
+
? [FOCUS_REGIONS.INSPECTOR]
|
|
218
|
+
: [FOCUS_REGIONS.INSPECTOR, FOCUS_REGIONS.ACTIVITY];
|
|
219
|
+
return [FOCUS_REGIONS.SESSIONS, ...right, FOCUS_REGIONS.PROMPT];
|
|
220
|
+
}
|
|
221
|
+
if (layout?.inspectorHidden) {
|
|
222
|
+
return [
|
|
223
|
+
FOCUS_REGIONS.SESSIONS,
|
|
224
|
+
FOCUS_REGIONS.CHAT,
|
|
225
|
+
FOCUS_REGIONS.ACTIVITY,
|
|
226
|
+
FOCUS_REGIONS.PROMPT,
|
|
227
|
+
];
|
|
228
|
+
}
|
|
229
|
+
if (layout?.activityHidden) {
|
|
230
|
+
return [
|
|
231
|
+
FOCUS_REGIONS.SESSIONS,
|
|
232
|
+
FOCUS_REGIONS.CHAT,
|
|
233
|
+
FOCUS_REGIONS.INSPECTOR,
|
|
234
|
+
FOCUS_REGIONS.PROMPT,
|
|
235
|
+
];
|
|
236
|
+
}
|
|
237
|
+
return [
|
|
238
|
+
FOCUS_REGIONS.SESSIONS,
|
|
239
|
+
FOCUS_REGIONS.CHAT,
|
|
240
|
+
FOCUS_REGIONS.INSPECTOR,
|
|
241
|
+
FOCUS_REGIONS.ACTIVITY,
|
|
242
|
+
FOCUS_REGIONS.PROMPT,
|
|
243
|
+
];
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
export function normalizeFocusRegion(focusRegion, layout) {
|
|
247
|
+
const order = getFocusOrderForLayout(layout);
|
|
248
|
+
if (order.includes(focusRegion)) return focusRegion;
|
|
249
|
+
return order[0] || FOCUS_REGIONS.PROMPT;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
export function getFocusLeftTarget(focusRegion, layout) {
|
|
253
|
+
if (layout?.fullscreenPane) {
|
|
254
|
+
return layout.fullscreenPane;
|
|
255
|
+
}
|
|
256
|
+
if (layout?.leftHidden) {
|
|
257
|
+
const map = {
|
|
258
|
+
[FOCUS_REGIONS.PROMPT]: FOCUS_REGIONS.PROMPT,
|
|
259
|
+
[FOCUS_REGIONS.ACTIVITY]: FOCUS_REGIONS.INSPECTOR,
|
|
260
|
+
[FOCUS_REGIONS.INSPECTOR]: FOCUS_REGIONS.INSPECTOR,
|
|
261
|
+
};
|
|
262
|
+
return map[focusRegion] || FOCUS_REGIONS.INSPECTOR;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
if (layout?.rightHidden) {
|
|
266
|
+
const map = {
|
|
267
|
+
[FOCUS_REGIONS.PROMPT]: FOCUS_REGIONS.PROMPT,
|
|
268
|
+
[FOCUS_REGIONS.CHAT]: layout?.sessionHidden ? FOCUS_REGIONS.CHAT : FOCUS_REGIONS.SESSIONS,
|
|
269
|
+
[FOCUS_REGIONS.SESSIONS]: FOCUS_REGIONS.SESSIONS,
|
|
270
|
+
};
|
|
271
|
+
return map[focusRegion] || (layout?.sessionHidden ? FOCUS_REGIONS.CHAT : FOCUS_REGIONS.SESSIONS);
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
const map = {
|
|
275
|
+
[FOCUS_REGIONS.PROMPT]: layout?.sessionHidden ? FOCUS_REGIONS.CHAT : FOCUS_REGIONS.SESSIONS,
|
|
276
|
+
[FOCUS_REGIONS.ACTIVITY]: layout?.chatHidden ? FOCUS_REGIONS.SESSIONS : FOCUS_REGIONS.CHAT,
|
|
277
|
+
[FOCUS_REGIONS.INSPECTOR]: layout?.chatHidden ? FOCUS_REGIONS.SESSIONS : FOCUS_REGIONS.CHAT,
|
|
278
|
+
[FOCUS_REGIONS.CHAT]: layout?.sessionHidden ? FOCUS_REGIONS.CHAT : FOCUS_REGIONS.SESSIONS,
|
|
279
|
+
[FOCUS_REGIONS.SESSIONS]: FOCUS_REGIONS.SESSIONS,
|
|
280
|
+
};
|
|
281
|
+
return map[focusRegion] || (layout?.sessionHidden ? FOCUS_REGIONS.CHAT : FOCUS_REGIONS.SESSIONS);
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
export function getFocusRightTarget(focusRegion, layout) {
|
|
285
|
+
if (layout?.fullscreenPane) {
|
|
286
|
+
return layout.fullscreenPane;
|
|
287
|
+
}
|
|
288
|
+
if (layout?.leftHidden) {
|
|
289
|
+
const map = {
|
|
290
|
+
[FOCUS_REGIONS.PROMPT]: FOCUS_REGIONS.PROMPT,
|
|
291
|
+
[FOCUS_REGIONS.INSPECTOR]: FOCUS_REGIONS.ACTIVITY,
|
|
292
|
+
[FOCUS_REGIONS.ACTIVITY]: FOCUS_REGIONS.ACTIVITY,
|
|
293
|
+
};
|
|
294
|
+
return map[focusRegion] || FOCUS_REGIONS.INSPECTOR;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
if (layout?.rightHidden) {
|
|
298
|
+
const map = {
|
|
299
|
+
[FOCUS_REGIONS.PROMPT]: FOCUS_REGIONS.PROMPT,
|
|
300
|
+
[FOCUS_REGIONS.SESSIONS]: layout?.chatHidden ? FOCUS_REGIONS.SESSIONS : FOCUS_REGIONS.CHAT,
|
|
301
|
+
[FOCUS_REGIONS.CHAT]: FOCUS_REGIONS.CHAT,
|
|
302
|
+
};
|
|
303
|
+
return map[focusRegion] || (layout?.chatHidden ? FOCUS_REGIONS.SESSIONS : FOCUS_REGIONS.CHAT);
|
|
304
|
+
}
|
|
305
|
+
if (layout?.inspectorHidden) {
|
|
306
|
+
const map = {
|
|
307
|
+
[FOCUS_REGIONS.PROMPT]: FOCUS_REGIONS.PROMPT,
|
|
308
|
+
[FOCUS_REGIONS.SESSIONS]: FOCUS_REGIONS.CHAT,
|
|
309
|
+
[FOCUS_REGIONS.CHAT]: FOCUS_REGIONS.ACTIVITY,
|
|
310
|
+
[FOCUS_REGIONS.ACTIVITY]: FOCUS_REGIONS.ACTIVITY,
|
|
311
|
+
};
|
|
312
|
+
return map[focusRegion] || FOCUS_REGIONS.CHAT;
|
|
313
|
+
}
|
|
314
|
+
if (layout?.activityHidden) {
|
|
315
|
+
const map = {
|
|
316
|
+
[FOCUS_REGIONS.PROMPT]: FOCUS_REGIONS.PROMPT,
|
|
317
|
+
[FOCUS_REGIONS.SESSIONS]: FOCUS_REGIONS.CHAT,
|
|
318
|
+
[FOCUS_REGIONS.CHAT]: FOCUS_REGIONS.INSPECTOR,
|
|
319
|
+
[FOCUS_REGIONS.INSPECTOR]: FOCUS_REGIONS.INSPECTOR,
|
|
320
|
+
};
|
|
321
|
+
return map[focusRegion] || FOCUS_REGIONS.CHAT;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
const map = {
|
|
325
|
+
[FOCUS_REGIONS.PROMPT]: FOCUS_REGIONS.PROMPT,
|
|
326
|
+
[FOCUS_REGIONS.SESSIONS]: FOCUS_REGIONS.CHAT,
|
|
327
|
+
[FOCUS_REGIONS.CHAT]: FOCUS_REGIONS.INSPECTOR,
|
|
328
|
+
[FOCUS_REGIONS.INSPECTOR]: FOCUS_REGIONS.ACTIVITY,
|
|
329
|
+
[FOCUS_REGIONS.ACTIVITY]: FOCUS_REGIONS.ACTIVITY,
|
|
330
|
+
};
|
|
331
|
+
return map[focusRegion] || FOCUS_REGIONS.CHAT;
|
|
332
|
+
}
|