@parhelia/core 0.1.12937 → 0.1.12939
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/dist/agents-view/AgentCard.d.ts +3 -1
- package/dist/agents-view/AgentCard.js +14 -5
- package/dist/agents-view/AgentCard.js.map +1 -1
- package/dist/agents-view/AgentsView.d.ts +3 -1
- package/dist/agents-view/AgentsView.js +7 -6
- package/dist/agents-view/AgentsView.js.map +1 -1
- package/dist/agents-view/DateAgentsGroup.d.ts +3 -1
- package/dist/agents-view/DateAgentsGroup.js +3 -2
- package/dist/agents-view/DateAgentsGroup.js.map +1 -1
- package/dist/agents-view/ProfileAgentsGroup.d.ts +3 -1
- package/dist/agents-view/ProfileAgentsGroup.js +11 -2
- package/dist/agents-view/ProfileAgentsGroup.js.map +1 -1
- package/dist/agents-view/RenameAgentDialog.js +6 -6
- package/dist/agents-view/RenameAgentDialog.js.map +1 -1
- package/dist/components/ui/PlaceholderInput.d.ts +1 -0
- package/dist/components/ui/PlaceholderInput.js +4 -2
- package/dist/components/ui/PlaceholderInput.js.map +1 -1
- package/dist/components/ui/PlaceholderItemSelector.js +15 -28
- package/dist/components/ui/PlaceholderItemSelector.js.map +1 -1
- package/dist/editor/ConfirmationDialog.js +3 -3
- package/dist/editor/ConfirmationDialog.js.map +1 -1
- package/dist/editor/FieldActionsOverlay.js +8 -10
- package/dist/editor/FieldActionsOverlay.js.map +1 -1
- package/dist/editor/ai/AgentProfileSelector.js +1 -1
- package/dist/editor/ai/AgentProfileSelector.js.map +1 -1
- package/dist/editor/ai/Agents.js +45 -29
- package/dist/editor/ai/Agents.js.map +1 -1
- package/dist/editor/ai/agentProfileDefaults.d.ts +7 -0
- package/dist/editor/ai/agentProfileDefaults.js +9 -0
- package/dist/editor/ai/agentProfileDefaults.js.map +1 -0
- package/dist/editor/ai/terminal/agentCost.d.ts +19 -0
- package/dist/editor/ai/terminal/agentCost.js +31 -0
- package/dist/editor/ai/terminal/agentCost.js.map +1 -0
- package/dist/editor/ai/terminal/agentSessionLiveTotals.js +13 -7
- package/dist/editor/ai/terminal/agentSessionLiveTotals.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentBanners.d.ts +2 -1
- package/dist/editor/ai/terminal/components/AgentBanners.js +3 -2
- package/dist/editor/ai/terminal/components/AgentBanners.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentCostDisplay.js +7 -3
- package/dist/editor/ai/terminal/components/AgentCostDisplay.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentGreeting.d.ts +3 -1
- package/dist/editor/ai/terminal/components/AgentGreeting.js +2 -2
- package/dist/editor/ai/terminal/components/AgentGreeting.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentMemoryPanel.js +8 -5
- package/dist/editor/ai/terminal/components/AgentMemoryPanel.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentModeSelector.js +4 -10
- package/dist/editor/ai/terminal/components/AgentModeSelector.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentProfileSwitcher.d.ts +26 -0
- package/dist/editor/ai/terminal/components/AgentProfileSwitcher.js +96 -0
- package/dist/editor/ai/terminal/components/AgentProfileSwitcher.js.map +1 -0
- package/dist/editor/ai/terminal/components/AgentPromptInputArea.js +8 -3
- package/dist/editor/ai/terminal/components/AgentPromptInputArea.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.d.ts +1 -1
- package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js +21 -1
- package/dist/editor/ai/terminal/components/AgentPromptTrayPopovers.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentSummaryAssistantResponse.d.ts +1 -3
- package/dist/editor/ai/terminal/components/AgentSummaryAssistantResponse.js +2 -2
- package/dist/editor/ai/terminal/components/AgentSummaryAssistantResponse.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentTerminalContextChrome.d.ts +2 -1
- package/dist/editor/ai/terminal/components/AgentTerminalContextChrome.js +2 -2
- package/dist/editor/ai/terminal/components/AgentTerminalContextChrome.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentTerminalFullUpperContent.d.ts +7 -1
- package/dist/editor/ai/terminal/components/AgentTerminalFullUpperContent.js +4 -3
- package/dist/editor/ai/terminal/components/AgentTerminalFullUpperContent.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentTerminalMessageGroups.d.ts +1 -3
- package/dist/editor/ai/terminal/components/AgentTerminalMessageGroups.js +2 -2
- package/dist/editor/ai/terminal/components/AgentTerminalMessageGroups.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentTerminalStatusBar.js +9 -0
- package/dist/editor/ai/terminal/components/AgentTerminalStatusBar.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentTerminalSummaryLayout.d.ts +1 -1
- package/dist/editor/ai/terminal/components/AgentTerminalSummaryLayout.js +2 -2
- package/dist/editor/ai/terminal/components/AgentTerminalSummaryLayout.js.map +1 -1
- package/dist/editor/ai/terminal/components/AgentThinkingIndicator.d.ts +1 -0
- package/dist/editor/ai/terminal/components/AgentThinkingIndicator.js +5 -0
- package/dist/editor/ai/terminal/components/AgentThinkingIndicator.js.map +1 -0
- package/dist/editor/ai/terminal/components/AiResponseMessage.d.ts +1 -2
- package/dist/editor/ai/terminal/components/AiResponseMessage.js +43 -31
- package/dist/editor/ai/terminal/components/AiResponseMessage.js.map +1 -1
- package/dist/editor/ai/terminal/components/ApprovalCard.d.ts +18 -0
- package/dist/editor/ai/terminal/components/ApprovalCard.js +63 -0
- package/dist/editor/ai/terminal/components/ApprovalCard.js.map +1 -0
- package/dist/editor/ai/terminal/components/ContextInfoBar.js +3 -3
- package/dist/editor/ai/terminal/components/ContextInfoBar.js.map +1 -1
- package/dist/editor/ai/terminal/components/InitialThinkingSplash.js +2 -2
- package/dist/editor/ai/terminal/components/InitialThinkingSplash.js.map +1 -1
- package/dist/editor/ai/terminal/components/ToolCallDisplay.d.ts +3 -5
- package/dist/editor/ai/terminal/components/ToolCallDisplay.js +13 -248
- package/dist/editor/ai/terminal/components/ToolCallDisplay.js.map +1 -1
- package/dist/editor/ai/terminal/components/UserMessage.js +43 -4
- package/dist/editor/ai/terminal/components/UserMessage.js.map +1 -1
- package/dist/editor/ai/terminal/components/approvalActions.d.ts +49 -0
- package/dist/editor/ai/terminal/components/approvalActions.js +128 -0
- package/dist/editor/ai/terminal/components/approvalActions.js.map +1 -0
- package/dist/editor/ai/terminal/components/toolCallApprovalGate.d.ts +14 -0
- package/dist/editor/ai/terminal/components/toolCallApprovalGate.js +31 -10
- package/dist/editor/ai/terminal/components/toolCallApprovalGate.js.map +1 -1
- package/dist/editor/ai/terminal/components/useApprovalActions.d.ts +23 -0
- package/dist/editor/ai/terminal/components/useApprovalActions.js +58 -0
- package/dist/editor/ai/terminal/components/useApprovalActions.js.map +1 -0
- package/dist/editor/ai/terminal/types.d.ts +6 -0
- package/dist/editor/ai/terminal/useAgentCostLimitWatcher.js +4 -1
- package/dist/editor/ai/terminal/useAgentCostLimitWatcher.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentPendingApprovals.js +3 -1
- package/dist/editor/ai/terminal/useAgentPendingApprovals.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentRunStatusSocketHandler.js +15 -2
- package/dist/editor/ai/terminal/useAgentRunStatusSocketHandler.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentSettingsSelectOptions.js +0 -3
- package/dist/editor/ai/terminal/useAgentSettingsSelectOptions.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentStatusBarContent.js +9 -0
- package/dist/editor/ai/terminal/useAgentStatusBarContent.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentTerminalChrome.js +1 -1
- package/dist/editor/ai/terminal/useAgentTerminalChrome.js.map +1 -1
- package/dist/editor/ai/terminal/useAgentTerminalController.d.ts +1 -1
- package/dist/editor/ai/terminal/useAgentTerminalController.js +4 -1
- package/dist/editor/ai/terminal/useAgentTerminalController.js.map +1 -1
- package/dist/editor/ai/types.d.ts +5 -0
- package/dist/editor/client/EditorShell.js +40 -9
- package/dist/editor/client/EditorShell.js.map +1 -1
- package/dist/editor/client/editContext.d.ts +8 -0
- package/dist/editor/client/editContext.js.map +1 -1
- package/dist/editor/client/hooks/useWorkbox.d.ts +2 -2
- package/dist/editor/client/hooks/useWorkbox.js +3 -3
- package/dist/editor/client/hooks/useWorkbox.js.map +1 -1
- package/dist/editor/client/hooks/workboxDescriptors.d.ts +6 -1
- package/dist/editor/client/hooks/workboxDescriptors.js +37 -9
- package/dist/editor/client/hooks/workboxDescriptors.js.map +1 -1
- package/dist/editor/client/ui/EditorChrome.js +1 -1
- package/dist/editor/client/ui/EditorChrome.js.map +1 -1
- package/dist/editor/client/ui/FullscreenControls.js +2 -2
- package/dist/editor/client/ui/FullscreenControls.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/FullscreenControl.js +2 -2
- package/dist/editor/menubar/toolbar-sections/FullscreenControl.js.map +1 -1
- package/dist/editor/menubar/toolbar-sections/UndoRedoControls.js +1 -1
- package/dist/editor/menubar/toolbar-sections/UndoRedoControls.js.map +1 -1
- package/dist/editor/notifications/NotificationCenter.js +2 -2
- package/dist/editor/notifications/NotificationCenter.js.map +1 -1
- package/dist/editor/page-editor-chrome/DragInsertionOverlay.js +51 -0
- package/dist/editor/page-editor-chrome/DragInsertionOverlay.js.map +1 -1
- package/dist/editor/page-editor-chrome/EmptyImageFieldIndicators.d.ts +3 -1
- package/dist/editor/page-editor-chrome/EmptyImageFieldIndicators.js +42 -11
- package/dist/editor/page-editor-chrome/EmptyImageFieldIndicators.js.map +1 -1
- package/dist/editor/page-editor-chrome/PageEditorChrome.d.ts +2 -1
- package/dist/editor/page-editor-chrome/PageEditorChrome.js +4 -2
- package/dist/editor/page-editor-chrome/PageEditorChrome.js.map +1 -1
- package/dist/editor/page-editor-chrome/PictureEditorOverlay.d.ts +3 -2
- package/dist/editor/page-editor-chrome/PictureEditorOverlay.js +8 -3
- package/dist/editor/page-editor-chrome/PictureEditorOverlay.js.map +1 -1
- package/dist/editor/page-editor-chrome/PlaceholderDropZone.d.ts +10 -4
- package/dist/editor/page-editor-chrome/PlaceholderDropZone.js +13 -13
- package/dist/editor/page-editor-chrome/PlaceholderDropZone.js.map +1 -1
- package/dist/editor/page-editor-chrome/PlaceholderDropZones.js +5 -5
- package/dist/editor/page-editor-chrome/PlaceholderDropZones.js.map +1 -1
- package/dist/editor/page-viewer/PageViewerFrame.js +4 -1
- package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
- package/dist/editor/reviews/MultiReviewManager.js +1 -0
- package/dist/editor/reviews/MultiReviewManager.js.map +1 -1
- package/dist/editor/reviews/useMultiReview.d.ts +10 -2
- package/dist/editor/reviews/useMultiReview.js +54 -12
- package/dist/editor/reviews/useMultiReview.js.map +1 -1
- package/dist/editor/services/aiService.d.ts +2 -0
- package/dist/editor/services/aiService.js.map +1 -1
- package/dist/editor/settings/index/QueueErrorsDisplay.js +1 -1
- package/dist/editor/settings/index/QueueErrorsDisplay.js.map +1 -1
- package/dist/editor/settings/index/RebuildIndexSection.js +1 -1
- package/dist/editor/settings/index/RebuildIndexSection.js.map +1 -1
- package/dist/editor/settings/panels/ProvidersPanel.js +12 -6
- package/dist/editor/settings/panels/ProvidersPanel.js.map +1 -1
- package/dist/editor/setup-wizard/steps/ProviderStep.js +1 -1
- package/dist/editor/setup-wizard/steps/ProviderStep.js.map +1 -1
- package/dist/editor/sidebar/SidebarPanel.d.ts +2 -1
- package/dist/editor/sidebar/SidebarPanel.js +14 -4
- package/dist/editor/sidebar/SidebarPanel.js.map +1 -1
- package/dist/editor/sidebar/Validation.js +29 -16
- package/dist/editor/sidebar/Validation.js.map +1 -1
- package/dist/editor/sidebar/Workbox.js +107 -21
- package/dist/editor/sidebar/Workbox.js.map +1 -1
- package/dist/editor/ui/SimpleTable.d.ts +1 -0
- package/dist/editor/ui/SimpleTable.js +12 -2
- package/dist/editor/ui/SimpleTable.js.map +1 -1
- package/dist/editor/ui/Splitter.js +1 -1
- package/dist/editor/ui/Splitter.js.map +1 -1
- package/dist/editor/ui/TreeListSelector.d.ts +2 -1
- package/dist/editor/ui/TreeListSelector.js +2 -2
- package/dist/editor/ui/TreeListSelector.js.map +1 -1
- package/dist/editor/ui/WorkboxItemsTable.js +61 -10
- package/dist/editor/ui/WorkboxItemsTable.js.map +1 -1
- package/dist/editor/utils/textInsertionWhitespace.d.ts +21 -0
- package/dist/editor/utils/textInsertionWhitespace.js +71 -0
- package/dist/editor/utils/textInsertionWhitespace.js.map +1 -0
- package/dist/editor/views/editorSlotContext.js +14 -2
- package/dist/editor/views/editorSlotContext.js.map +1 -1
- package/dist/revision.d.ts +2 -2
- package/dist/revision.js +2 -2
- package/dist/tour/default-tour.js +29 -21
- package/dist/tour/default-tour.js.map +1 -1
- package/dist/types.d.ts +6 -0
- package/package.json +1 -1
- package/styles.css +34 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves the profile a new chat starts with: the backend marks exactly one
|
|
3
|
+
* profile per response via the "Default Agent Profile" setting (isDefault),
|
|
4
|
+
* with the first profile as a safety fallback for older backends.
|
|
5
|
+
*/
|
|
6
|
+
export function resolveDefaultProfile(profiles) {
|
|
7
|
+
return profiles.find((profile) => profile.isDefault) ?? profiles[0];
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=agentProfileDefaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentProfileDefaults.js","sourceRoot":"","sources":["../../../src/editor/ai/agentProfileDefaults.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAAqB;IAErB,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface AgentCostRows {
|
|
2
|
+
inputCost?: number | null;
|
|
3
|
+
outputCost?: number | null;
|
|
4
|
+
cachedCost?: number | null;
|
|
5
|
+
cacheWriteCost?: number | null;
|
|
6
|
+
inputAudioCost?: number | null;
|
|
7
|
+
outputAudioCost?: number | null;
|
|
8
|
+
outputImageCost?: number | null;
|
|
9
|
+
imageCost?: number | null;
|
|
10
|
+
markupCost?: number | null;
|
|
11
|
+
}
|
|
12
|
+
export declare function calculateItemizedCostTotal(costs: AgentCostRows): number;
|
|
13
|
+
/**
|
|
14
|
+
* A cumulative snapshot can briefly carry a stale declared total while already
|
|
15
|
+
* containing newer itemized costs (notably generated-image tool costs). Never
|
|
16
|
+
* display or enforce a total below the costs represented by its own rows.
|
|
17
|
+
*/
|
|
18
|
+
export declare function reconcileAgentCostTotal(declaredTotal: unknown, costs: AgentCostRows): number;
|
|
19
|
+
export declare function formatAgentCost(value: number, currency?: string): string;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
const itemizedCostKeys = [
|
|
2
|
+
"inputCost",
|
|
3
|
+
"outputCost",
|
|
4
|
+
"cachedCost",
|
|
5
|
+
"cacheWriteCost",
|
|
6
|
+
"inputAudioCost",
|
|
7
|
+
"outputAudioCost",
|
|
8
|
+
"outputImageCost",
|
|
9
|
+
"imageCost",
|
|
10
|
+
"markupCost",
|
|
11
|
+
];
|
|
12
|
+
function toNonNegativeCost(value) {
|
|
13
|
+
const numericValue = Number(value);
|
|
14
|
+
return Number.isFinite(numericValue) && numericValue > 0 ? numericValue : 0;
|
|
15
|
+
}
|
|
16
|
+
export function calculateItemizedCostTotal(costs) {
|
|
17
|
+
return itemizedCostKeys.reduce((total, key) => total + toNonNegativeCost(costs[key]), 0);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* A cumulative snapshot can briefly carry a stale declared total while already
|
|
21
|
+
* containing newer itemized costs (notably generated-image tool costs). Never
|
|
22
|
+
* display or enforce a total below the costs represented by its own rows.
|
|
23
|
+
*/
|
|
24
|
+
export function reconcileAgentCostTotal(declaredTotal, costs) {
|
|
25
|
+
return Math.max(toNonNegativeCost(declaredTotal), calculateItemizedCostTotal(costs));
|
|
26
|
+
}
|
|
27
|
+
export function formatAgentCost(value, currency = "USD") {
|
|
28
|
+
const normalizedCurrency = currency.trim() || "USD";
|
|
29
|
+
return `${toNonNegativeCost(value).toFixed(2)} ${normalizedCurrency}`;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=agentCost.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentCost.js","sourceRoot":"","sources":["../../../../src/editor/ai/terminal/agentCost.ts"],"names":[],"mappings":"AAYA,MAAM,gBAAgB,GAA+B;IACnD,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,gBAAgB;IAChB,gBAAgB;IAChB,iBAAiB;IACjB,iBAAiB;IACjB,WAAW;IACX,YAAY;CACb,CAAC;AAEF,SAAS,iBAAiB,CAAC,KAAc;IACvC,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACnC,OAAO,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAAoB;IAC7D,OAAO,gBAAgB,CAAC,MAAM,CAC5B,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EACrD,CAAC,CACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CACrC,aAAsB,EACtB,KAAoB;IAEpB,OAAO,IAAI,CAAC,GAAG,CACb,iBAAiB,CAAC,aAAa,CAAC,EAChC,0BAA0B,CAAC,KAAK,CAAC,CAClC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,QAAQ,GAAG,KAAK;IAC7D,MAAM,kBAAkB,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC;IACpD,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,kBAAkB,EAAE,CAAC;AACxE,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { reconcileAgentCostTotal } from "./agentCost";
|
|
1
2
|
export function hasNonZeroLiveTotals(totals) {
|
|
2
3
|
return ((totals.totalCost || 0) > 0 ||
|
|
3
4
|
(totals.input || 0) > 0 ||
|
|
@@ -9,7 +10,7 @@ export function liveTotalsFromStreamCost(cost) {
|
|
|
9
10
|
if (!cost || (cost.total === undefined && cost.tokens?.total === undefined)) {
|
|
10
11
|
return null;
|
|
11
12
|
}
|
|
12
|
-
|
|
13
|
+
const totals = {
|
|
13
14
|
input: Number(cost.tokens?.input) || 0,
|
|
14
15
|
output: Number(cost.tokens?.output) || 0,
|
|
15
16
|
cached: Number(cost.tokens?.cached) || 0,
|
|
@@ -28,16 +29,18 @@ export function liveTotalsFromStreamCost(cost) {
|
|
|
28
29
|
imageCost: Number(cost.imageCost ?? cost.totalImageCost) || 0,
|
|
29
30
|
markupCost: Number(cost.markup) || 0,
|
|
30
31
|
reportedTotalCost: Number(cost.reportedTotal) || 0,
|
|
31
|
-
totalCost:
|
|
32
|
+
totalCost: 0,
|
|
32
33
|
currency: "USD",
|
|
33
34
|
};
|
|
35
|
+
totals.totalCost = reconcileAgentCostTotal(cost.total, totals);
|
|
36
|
+
return totals;
|
|
34
37
|
}
|
|
35
38
|
export function liveTotalsFromToolResultData(data) {
|
|
36
39
|
if (!data ||
|
|
37
40
|
(data.totalCost === undefined && data.totalTokens === undefined)) {
|
|
38
41
|
return null;
|
|
39
42
|
}
|
|
40
|
-
|
|
43
|
+
const totals = {
|
|
41
44
|
input: Number(data.totalInputTokens) || 0,
|
|
42
45
|
output: Number(data.totalOutputTokens) || 0,
|
|
43
46
|
cached: Number(data.totalCachedTokens) || 0,
|
|
@@ -56,15 +59,16 @@ export function liveTotalsFromToolResultData(data) {
|
|
|
56
59
|
imageCost: Number(data.totalImageCost) || 0,
|
|
57
60
|
markupCost: Number(data.totalMarkupCost) || 0,
|
|
58
61
|
reportedTotalCost: Number(data.totalReportedCost) || 0,
|
|
59
|
-
totalCost:
|
|
62
|
+
totalCost: 0,
|
|
60
63
|
currency: data.currency || "USD",
|
|
61
64
|
};
|
|
65
|
+
totals.totalCost = reconcileAgentCostTotal(data.totalCost, totals);
|
|
66
|
+
return totals;
|
|
62
67
|
}
|
|
63
68
|
export function liveTotalsFromStatusTotals(totals) {
|
|
64
69
|
if (!totals)
|
|
65
70
|
return null;
|
|
66
|
-
const
|
|
67
|
-
return {
|
|
71
|
+
const liveTotals = {
|
|
68
72
|
input: Number(totals.totalInputTokens) || 0,
|
|
69
73
|
output: Number(totals.totalOutputTokens) || 0,
|
|
70
74
|
cached: Number(totals.totalCachedInputTokens) || 0,
|
|
@@ -83,9 +87,11 @@ export function liveTotalsFromStatusTotals(totals) {
|
|
|
83
87
|
imageCost: Number(totals.totalImageCost) || 0,
|
|
84
88
|
markupCost: Number(totals.totalMarkupCost) || 0,
|
|
85
89
|
reportedTotalCost: Number(totals.totalReportedCost) || 0,
|
|
86
|
-
totalCost,
|
|
90
|
+
totalCost: 0,
|
|
87
91
|
currency: totals.currency,
|
|
88
92
|
};
|
|
93
|
+
liveTotals.totalCost = reconcileAgentCostTotal(totals.totalCost, liveTotals);
|
|
94
|
+
return liveTotals;
|
|
89
95
|
}
|
|
90
96
|
/**
|
|
91
97
|
* Sanitizes a per-category context breakdown (category key → tokens) coming from
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentSessionLiveTotals.js","sourceRoot":"","sources":["../../../../src/editor/ai/terminal/agentSessionLiveTotals.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agentSessionLiveTotals.js","sourceRoot":"","sources":["../../../../src/editor/ai/terminal/agentSessionLiveTotals.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEtD,MAAM,UAAU,oBAAoB,CAClC,MAAmC;IAEnC,OAAO,CACL,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC;QAC3B,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC;QACvB,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;QACxB,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;QACxB,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,CAC7B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,IAAS;IAET,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,KAAK,SAAS,CAAC,EAAE,CAAC;QAC5E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAgC;QAC1C,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC;QACtC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;QACxC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;QACxC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC;QAChD,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC;QAChD,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC;QAClD,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC;QAClD,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC;QAC9C,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAClC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QACpC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QACpC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAC5C,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAC5C,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAC9C,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAC9C,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;QAC7D,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QACpC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QAClD,SAAS,EAAE,CAAC;QACZ,QAAQ,EAAE,KAAK;KAChB,CAAC;IACF,MAAM,CAAC,SAAS,GAAG,uBAAuB,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC/D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,IAAS;IAET,IACE,CAAC,IAAI;QACL,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,EAChE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAgC;QAC1C,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;QACzC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAC3C,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAC3C,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;QACnD,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC;QACnD,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;QACrD,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;QACrD,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;QACjD,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;QAChD,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;QAClD,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;QAClD,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC;QAC1D,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;QACrD,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;QACvD,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;QACvD,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;QAC3C,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;QAC7C,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;QACtD,SAAS,EAAE,CAAC;QACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAK;KACjC,CAAC;IACF,MAAM,CAAC,SAAS,GAAG,uBAAuB,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACnE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,MAAW;IAEX,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,UAAU,GAAgC;QAC9C,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC;QAC3C,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAC7C,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC;QAClD,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC;QACrD,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC;QACrD,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC;QACvD,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC;QACvD,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC;QACnD,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC;QAClD,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC;QACpD,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC,IAAI,CAAC;QACzD,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,IAAI,CAAC;QAC5D,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC;QACvD,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC;QACzD,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC;QACzD,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC;QAC7C,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC;QAC/C,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC;QACxD,SAAS,EAAE,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC;IACF,UAAU,CAAC,SAAS,GAAG,uBAAuB,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC7E,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,GAAY;IAEZ,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAA8B,CAAC;SAC3D,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAU,CAAC;SACpD,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;IAE9D,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,IAAS,EACT,KAAa;IAEb,MAAM,gBAAgB,GAAG,IAAI,EAAE,aAAa,CAAC;IAC7C,MAAM,cAAc,GAAG,IAAI,EAAE,WAAW,CAAC;IACzC,IACE,gBAAgB,KAAK,SAAS;QAC9B,gBAAgB,KAAK,IAAI;QACzB,cAAc,KAAK,SAAS;QAC5B,cAAc,KAAK,IAAI,EACvB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,mBAAmB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACrD,MAAM,oBAAoB,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;IACpD,IACE,mBAAmB,IAAI,CAAC;QACxB,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QACtC,oBAAoB,GAAG,CAAC,EACxB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,mBAAmB;QACnB,oBAAoB;QACpB,kBAAkB,EAAE,CAAC,oBAAoB,GAAG,mBAAmB,CAAC,GAAG,GAAG;QACtE,KAAK;QACL,SAAS,EAAE,qBAAqB,CAAC,IAAI,EAAE,gBAAgB,CAAC;KACzD,CAAC;AACJ,CAAC"}
|
|
@@ -5,8 +5,9 @@ export declare const AgentErrorBanner: ({ message, }: {
|
|
|
5
5
|
export declare const AgentCapacityBanner: ({ message, }: {
|
|
6
6
|
message: string | null | undefined;
|
|
7
7
|
}) => React.JSX.Element | null;
|
|
8
|
-
export declare const AgentCostLimitBanner: ({ totalCost, costLimit, onExtend, }: {
|
|
8
|
+
export declare const AgentCostLimitBanner: ({ totalCost, costLimit, currency, onExtend, }: {
|
|
9
9
|
totalCost: number;
|
|
10
10
|
costLimit: number;
|
|
11
|
+
currency?: string;
|
|
11
12
|
onExtend: () => void | Promise<void>;
|
|
12
13
|
}) => React.JSX.Element;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { AlertCircle } from "lucide-react";
|
|
3
|
+
import { formatAgentCost } from "../agentCost";
|
|
3
4
|
export const AgentErrorBanner = ({ message, }) => {
|
|
4
5
|
if (!message)
|
|
5
6
|
return null;
|
|
@@ -10,7 +11,7 @@ export const AgentCapacityBanner = ({ message, }) => {
|
|
|
10
11
|
return null;
|
|
11
12
|
return (_jsx("div", { className: "border-feedback-orange bg-feedback-orange-light text-feedback-orange m-3 rounded border p-3 text-[11px]", "data-testid": "agent-capacity-banner", children: _jsxs("div", { className: "flex items-start gap-2", children: [_jsx(AlertCircle, { className: "text-feedback-orange mt-0.5 h-4 w-4 shrink-0", strokeWidth: 1 }), _jsxs("div", { className: "flex-1", children: [_jsx("div", { className: "mb-1 font-medium", children: "Waiting for capacity" }), _jsx("div", { className: "text-feedback-orange", children: message })] })] }) }));
|
|
12
13
|
};
|
|
13
|
-
export const AgentCostLimitBanner = ({ totalCost, costLimit, onExtend, }) => {
|
|
14
|
-
return (_jsxs("div", { className: "border-feedback-orange bg-feedback-orange-light text-feedback-orange m-3 rounded border p-3 text-[11px]", children: [_jsxs("div", { className: "mb-2 flex items-center gap-2", children: [_jsx(AlertCircle, { className: "text-feedback-orange h-4 w-4", strokeWidth: 1 }), _jsxs("span", { children: ["Cost limit exceeded. Spent
|
|
14
|
+
export const AgentCostLimitBanner = ({ totalCost, costLimit, currency = "USD", onExtend, }) => {
|
|
15
|
+
return (_jsxs("div", { className: "border-feedback-orange bg-feedback-orange-light text-feedback-orange m-3 rounded border p-3 text-[11px]", children: [_jsxs("div", { className: "mb-2 flex items-center gap-2", children: [_jsx(AlertCircle, { className: "text-feedback-orange h-4 w-4", strokeWidth: 1 }), _jsxs("span", { children: ["Cost limit exceeded. Spent ", formatAgentCost(totalCost, currency), " /", " ", formatAgentCost(costLimit, currency), "."] })] }), _jsx("div", { className: "flex gap-2", children: _jsx("button", { className: "border-feedback-orange badge-pad hover:bg-feedback-orange-light rounded border bg-white", onClick: onExtend, children: "Extend limit and continue" }) })] }));
|
|
15
16
|
};
|
|
16
17
|
//# sourceMappingURL=AgentBanners.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentBanners.js","sourceRoot":"","sources":["../../../../../src/editor/ai/terminal/components/AgentBanners.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"AgentBanners.js","sourceRoot":"","sources":["../../../../../src/editor/ai/terminal/components/AgentBanners.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAC/B,OAAO,GAGR,EAAE,EAAE;IACH,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,OAAO,CACL,cACE,SAAS,EAAC,4GAA4G,iBAC1G,oBAAoB,YAEhC,eAAK,SAAS,EAAC,wBAAwB,aACrC,KAAC,WAAW,IACV,SAAS,EAAC,2CAA2C,EACrD,WAAW,EAAE,CAAC,GACd,EACF,eAAK,SAAS,EAAC,QAAQ,aACrB,cAAK,SAAS,EAAC,kBAAkB,4BAAkB,EACnD,cAAK,SAAS,EAAC,mBAAmB,YAAE,OAAO,GAAO,IAC9C,IACF,GACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAClC,OAAO,GAGR,EAAE,EAAE;IACH,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,OAAO,CACL,cACE,SAAS,EAAC,yGAAyG,iBACvG,uBAAuB,YAEnC,eAAK,SAAS,EAAC,wBAAwB,aACrC,KAAC,WAAW,IACV,SAAS,EAAC,8CAA8C,EACxD,WAAW,EAAE,CAAC,GACd,EACF,eAAK,SAAS,EAAC,QAAQ,aACrB,cAAK,SAAS,EAAC,kBAAkB,qCAA2B,EAC5D,cAAK,SAAS,EAAC,sBAAsB,YAAE,OAAO,GAAO,IACjD,IACF,GACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EACnC,SAAS,EACT,SAAS,EACT,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAMT,EAAE,EAAE;IACH,OAAO,CACL,eAAK,SAAS,EAAC,yGAAyG,aACtH,eAAK,SAAS,EAAC,8BAA8B,aAC3C,KAAC,WAAW,IAAC,SAAS,EAAC,8BAA8B,EAAC,WAAW,EAAE,CAAC,GAAI,EACxE,0DAC8B,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAI,GAAG,EACtE,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,SAChC,IACH,EACN,cAAK,SAAS,EAAC,YAAY,YACzB,iBACE,SAAS,EAAC,yFAAyF,EACnG,OAAO,EAAE,QAAQ,0CAGV,GACL,IACF,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
3
|
import { useEffect, useRef, useState } from "react";
|
|
4
4
|
import { Popover, PopoverContent, PopoverTrigger, } from "../../../../components/ui/popover";
|
|
5
5
|
import { useParheliaSettings } from "../../../hooks/useParheliaSettings";
|
|
6
|
+
import { formatAgentCost, reconcileAgentCostTotal } from "../agentCost";
|
|
6
7
|
export function AgentCostDisplay({ className = "", response, totalTokens, costLimit, }) {
|
|
7
8
|
const [showCostPopover, setShowCostPopover] = useState(false);
|
|
8
9
|
const costPopoverRef = useRef(null);
|
|
@@ -53,7 +54,10 @@ export function AgentCostDisplay({ className = "", response, totalTokens, costLi
|
|
|
53
54
|
}
|
|
54
55
|
: calculateEstimatedCost(response.numInputTokens, response.numOutputTokens, response.numCachedTokens, response.numCacheWriteTokens ?? 0)
|
|
55
56
|
: null;
|
|
56
|
-
const
|
|
57
|
+
const declaredTotalCost = totalTokens?.totalCost ?? currentCost?.totalCost ?? 0;
|
|
58
|
+
const displayTotalCost = totalTokens
|
|
59
|
+
? reconcileAgentCostTotal(declaredTotalCost, totalTokens)
|
|
60
|
+
: declaredTotalCost;
|
|
57
61
|
// Dev-mode invariant: visible rows should sum to the displayed total within rounding tolerance.
|
|
58
62
|
// Warn (don't throw) so a regression like "header 0.63 vs rows 0.12" surfaces in the console
|
|
59
63
|
// before the user notices it in the UI.
|
|
@@ -102,7 +106,7 @@ export function AgentCostDisplay({ className = "", response, totalTokens, costLi
|
|
|
102
106
|
return "text-feedback-orange";
|
|
103
107
|
return "text-neutral-grey-50";
|
|
104
108
|
};
|
|
105
|
-
return (_jsx("div", { className: `relative ${className}`, ref: costPopoverRef, "data-testid": "agent-cost-display", children: _jsxs(Popover, { open: showCostPopover, onOpenChange: setShowCostPopover, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs("div", { className: `hover:text-neutral-grey-50 cursor-pointer text-right text-[10px] ${getColorClass()}`, "data-testid": "agent-cost-display-trigger", children: ["Total cost:", " ",
|
|
109
|
+
return (_jsx("div", { className: `relative ${className}`, ref: costPopoverRef, "data-testid": "agent-cost-display", children: _jsxs(Popover, { open: showCostPopover, onOpenChange: setShowCostPopover, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs("div", { className: `hover:text-neutral-grey-50 cursor-pointer text-right text-[10px] ${getColorClass()}`, "data-testid": "agent-cost-display-trigger", children: ["Total cost:", " ", _jsx("span", { className: "font-medium", children: formatAgentCost(displayTotalCost, currency) }), limit && limit > 0 && ` / ${formatAgentCost(limit, currency)}`] }) }), _jsx(PopoverContent, { className: "w-80 p-4", align: "end", side: "bottom", "data-testid": "agent-cost-display-popover", children: _jsxs("div", { className: "space-y-4", children: [_jsx("div", { className: "border-b pb-2", children: _jsxs("h4", { className: "flex items-center justify-between text-sm font-medium", children: [_jsx("div", { children: "Cost Breakdown" }), _jsxs("span", { className: "text-sm font-medium", children: [formatAgentCost(displayTotalCost, currency), limit && limit > 0 && (_jsxs("span", { className: "text-neutral-grey-50 ml-1 text-xs", children: ["/ ", formatAgentCost(limit, currency)] }))] })] }) }), limit && limit > 0 && (_jsxs("div", { className: "bg-neutral-grey-5 rounded-md p-3", children: [_jsxs("div", { className: "mb-2 flex items-center justify-between text-xs", children: [_jsx("span", { className: "text-neutral-grey-100 font-medium", children: "Cost Limit Usage" }), _jsxs("span", { className: `font-medium ${getColorClass()}`, children: [percentUsed?.toFixed(1), "%"] })] }), _jsx("div", { className: "bg-neutral-grey-10 h-2 w-full overflow-hidden rounded-full", children: _jsx("div", { className: `h-full transition-all ${percentUsed && percentUsed >= 100
|
|
106
110
|
? "bg-feedback-red"
|
|
107
111
|
: percentUsed && percentUsed >= 80
|
|
108
112
|
? "bg-component-shared"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentCostDisplay.js","sourceRoot":"","sources":["../../../../../src/editor/ai/terminal/components/AgentCostDisplay.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,
|
|
1
|
+
{"version":3,"file":"AgentCostDisplay.js","sourceRoot":"","sources":["../../../../../src/editor/ai/terminal/components/AgentCostDisplay.tsx"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,8 @@ interface AgentGreetingProps {
|
|
|
4
4
|
profile: AiProfile;
|
|
5
5
|
onPromptClick?: (prompt: string) => void;
|
|
6
6
|
className?: string;
|
|
7
|
+
/** Optional "Looking for a specialist?" control rendered below the prompts */
|
|
8
|
+
profileSwitcher?: React.ReactNode;
|
|
7
9
|
}
|
|
8
|
-
export declare function AgentGreeting({ profile, onPromptClick, className, }: AgentGreetingProps): React.JSX.Element;
|
|
10
|
+
export declare function AgentGreeting({ profile, onPromptClick, className, profileSwitcher, }: AgentGreetingProps): React.JSX.Element;
|
|
9
11
|
export {};
|
|
@@ -3,12 +3,12 @@ import { MessageSquare, ArrowRight } from "lucide-react";
|
|
|
3
3
|
import { cn } from "../../../../lib/utils";
|
|
4
4
|
import { sanitizeHtml, sanitizeSvg } from "../../../../lib/sanitize";
|
|
5
5
|
import { ParheliaAgentIcon } from "../../../ui/Icons";
|
|
6
|
-
export function AgentGreeting({ profile, onPromptClick, className, }) {
|
|
6
|
+
export function AgentGreeting({ profile, onPromptClick, className, profileSwitcher, }) {
|
|
7
7
|
const prompts = profile.prompts || [];
|
|
8
8
|
return (_jsxs("div", { className: cn("agent-greeting flex h-full w-full min-w-0 flex-col items-center justify-center p-8 text-center", className), children: [_jsxs("div", { className: "animate-in fade-in slide-in-from-bottom-4 w-full min-w-0 duration-1000", children: [_jsx("div", { className: "bg-neutral-grey-5 text-neutral-grey-100 mx-auto mb-4 box-border flex size-14 items-center justify-center rounded-2xl p-3", "data-testid": "agent-greeting-icon", children: profile.svgIcon ? (_jsx("div", { className: "size-8 [&>svg]:h-full [&>svg]:w-full", dangerouslySetInnerHTML: {
|
|
9
9
|
__html: sanitizeSvg(profile.svgIcon),
|
|
10
10
|
} })) : (_jsx(ParheliaAgentIcon, { size: 32, strokeWidth: 1.5 })) }), !profile.greetingMessage ? (_jsx("h2", { className: "text-neutral-grey-100 mb-3 text-2xl font-medium tracking-tight", children: profile.agentName || profile.name })) : null, profile.greetingMessage ? (_jsx("div", { className: "agent-greeting-message prose prose-slate text-neutral-grey-100 mx-auto w-full max-w-xl font-medium tracking-tight", dangerouslySetInnerHTML: {
|
|
11
11
|
__html: sanitizeHtml(profile.greetingMessage),
|
|
12
|
-
} })) : (_jsx("p", { className: "text-neutral-grey-50 mx-auto max-w-
|
|
12
|
+
} })) : (_jsx("p", { className: "text-neutral-grey-50 mx-auto box-border w-full max-w-lg px-4 text-lg leading-relaxed sm:px-6", children: profile.description || "How can I help you today?" }))] }), prompts.length > 0 && (_jsx("div", { className: "animate-in fade-in slide-in-from-bottom-6 mt-12 flex w-full max-w-2xl flex-wrap justify-center gap-3 duration-1000 [animation-delay:400ms]", children: prompts.map((prompt, index) => (_jsxs("button", { onClick: () => onPromptClick?.(prompt.prompt), className: "group border-border-default text-neutral-grey-100 hover:border-feedback-blue hover:text-feedback-blue flex items-center gap-3 rounded-2xl border bg-white/50 px-5 py-3 text-xs font-medium backdrop-blur-sm transition-all hover:bg-white hover:shadow-md active:scale-95", children: [_jsx(MessageSquare, { size: 16, className: "text-neutral-grey-50 group-hover:text-feedback-blue transition-colors" }), _jsx("span", { children: prompt.title }), _jsx(ArrowRight, { size: 14, className: "ml-1 -translate-x-2 opacity-0 transition-all group-hover:translate-x-0 group-hover:opacity-100" })] }, index))) })), profileSwitcher ? (_jsx("div", { className: "animate-in fade-in mt-8 flex justify-center duration-1000 [animation-delay:600ms]", children: profileSwitcher })) : null] }));
|
|
13
13
|
}
|
|
14
14
|
//# sourceMappingURL=AgentGreeting.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentGreeting.js","sourceRoot":"","sources":["../../../../../src/editor/ai/terminal/components/AgentGreeting.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"AgentGreeting.js","sourceRoot":"","sources":["../../../../../src/editor/ai/terminal/components/AgentGreeting.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAUtD,MAAM,UAAU,aAAa,CAAC,EAC5B,OAAO,EACP,aAAa,EACb,SAAS,EACT,eAAe,GACI;IACnB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;IAEtC,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,gGAAgG,EAChG,SAAS,CACV,aAED,eAAK,SAAS,EAAC,wEAAwE,aACrF,cACE,SAAS,EAAC,0HAA0H,iBACxH,qBAAqB,YAEhC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CACjB,cACE,SAAS,EAAC,sCAAsC,EAChD,uBAAuB,EAAE;gCACvB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC;6BACrC,GACD,CACH,CAAC,CAAC,CAAC,CACF,KAAC,iBAAiB,IAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,GAAI,CAClD,GACG,EAEL,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAC1B,aAAI,SAAS,EAAC,gEAAgE,YAC3E,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,GAC/B,CACN,CAAC,CAAC,CAAC,IAAI,EAEP,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CACzB,cACE,SAAS,EAAC,mHAAmH,EAC7H,uBAAuB,EAAE;4BACvB,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC;yBAC9C,GACD,CACH,CAAC,CAAC,CAAC,CACF,YAAG,SAAS,EAAC,8FAA8F,YACxG,OAAO,CAAC,WAAW,IAAI,2BAA2B,GACjD,CACL,IACG,EAEL,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CACrB,cAAK,SAAS,EAAC,4IAA4I,YACxJ,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAC9B,kBAEE,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAC7C,SAAS,EAAC,2QAA2Q,aAErR,KAAC,aAAa,IACZ,IAAI,EAAE,EAAE,EACR,SAAS,EAAC,uEAAuE,GACjF,EACF,yBAAO,MAAM,CAAC,KAAK,GAAQ,EAC3B,KAAC,UAAU,IACT,IAAI,EAAE,EAAE,EACR,SAAS,EAAC,gGAAgG,GAC1G,KAZG,KAAK,CAaH,CACV,CAAC,GACE,CACP,EAEA,eAAe,CAAC,CAAC,CAAC,CACjB,cAAK,SAAS,EAAC,mFAAmF,YAC/F,eAAe,GACZ,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -6,6 +6,7 @@ import { Button } from "../../../../components/ui/button";
|
|
|
6
6
|
import { Input } from "../../../../components/ui/input";
|
|
7
7
|
import { Textarea } from "../../../../components/ui/textarea";
|
|
8
8
|
import { useEditContext } from "../../../client/editContext";
|
|
9
|
+
import { formatDateTime } from "../../../utils";
|
|
9
10
|
import { getAgentMemories, saveAgentMemory, deleteAgentMemory, } from "../../../services/agentService";
|
|
10
11
|
/**
|
|
11
12
|
* Viewer/editor for the current user's persistent memory entries of an agent
|
|
@@ -48,8 +49,10 @@ export function AgentMemoryPanel({ profileId, headerless, onCountChange, }) {
|
|
|
48
49
|
void loadMemories();
|
|
49
50
|
}, [loadMemories]);
|
|
50
51
|
useEffect(() => {
|
|
51
|
-
|
|
52
|
-
|
|
52
|
+
if (!loading) {
|
|
53
|
+
onCountChange?.(memories.length);
|
|
54
|
+
}
|
|
55
|
+
}, [loading, memories.length, onCountChange]);
|
|
53
56
|
const startEdit = (entry) => {
|
|
54
57
|
setEditingId(entry.id);
|
|
55
58
|
setDraftTitle(entry.title ?? "");
|
|
@@ -141,11 +144,11 @@ export function AgentMemoryPanel({ profileId, headerless, onCountChange, }) {
|
|
|
141
144
|
},
|
|
142
145
|
});
|
|
143
146
|
};
|
|
144
|
-
const
|
|
147
|
+
const formatUpdatedDate = (value) => {
|
|
145
148
|
const date = new Date(value);
|
|
146
|
-
return isNaN(date.getTime()) ? "" : date
|
|
149
|
+
return isNaN(date.getTime()) ? "" : formatDateTime(date);
|
|
147
150
|
};
|
|
148
151
|
const editorForm = (_jsxs("div", { className: "border-border-default flex flex-col gap-2 rounded-md border bg-white p-2 shadow-sm", "data-testid": "agent-memory-editor", children: [_jsx(Input, { value: draftTitle, onChange: (e) => setDraftTitle(e.target.value), placeholder: "Title (optional)", maxLength: 200, className: "text-xs" }), _jsx(Textarea, { value: draftContent, onChange: (e) => setDraftContent(e.target.value), placeholder: "What should the agent remember?", maxLength: 2000, className: "min-h-16 text-xs" }), _jsxs("div", { className: "flex items-center justify-end gap-1", children: [_jsx(Button, { variant: "ghost", size: "sm", onClick: cancelEdit, disabled: saving, children: "Cancel" }), _jsx(Button, { size: "sm", onClick: () => void handleSave(), disabled: saving, children: saving ? (_jsxs("span", { className: "inline-flex items-center gap-1", children: [_jsx(Loader2, { className: "h-3 w-3 animate-spin", strokeWidth: 1.5 }), "Saving..."] })) : ("Save") })] })] }));
|
|
149
|
-
return (_jsxs("div", { className: headerless ? "px-3 pt-3 pb-3" : "px-4 pb-3", "data-testid": "agent-memory-panel", children: [error && (_jsx("div", { className: "text-feedback-red bg-feedback-red-light mb-2 rounded p-2 text-xs", children: error })), loading ? (_jsxs("div", { className: "text-neutral-grey-50 flex items-center gap-2 py-2 text-xs", children: [_jsx(Loader2, { className: "h-3 w-3 animate-spin", strokeWidth: 1.5 }), "Loading memories..."] })) : (_jsxs("div", { className: "flex flex-col gap-2", children: [memories.length === 0 && editingId !== "new" && (_jsxs("div", { className: "text-neutral-grey-50 flex items-center gap-2 py-2 text-xs", children: [_jsx(Brain, { className: "h-3.5 w-3.5", strokeWidth: 1.5 }), "No memories stored yet. The agent stores durable facts and preferences here as you work with it."] })), editingId === "new" && editorForm, memories.map((memory) => editingId === memory.id ? (_jsx(React.Fragment, { children: editorForm }, memory.id)) : (_jsxs("div", { className: "border-border-default group grid grid-cols-[minmax(0,1fr)_auto] items-start gap-x-2 rounded-md border bg-white px-2 py-1.5 text-[12px]", "data-testid": "agent-memory-entry", children: [_jsxs("div", { className: "min-w-0", children: [memory.title && (_jsx("div", { className: "text-neutral-grey-100 truncate leading-tight font-medium", children: memory.title })), _jsx("div", { className: "text-neutral-grey-100 leading-snug break-words whitespace-pre-wrap", children: memory.content }), _jsxs("div", { className: "text-neutral-grey-50 mt-0.5 text-[11px] leading-tight", children: ["Updated ",
|
|
152
|
+
return (_jsxs("div", { className: headerless ? "px-3 pt-3 pb-3" : "px-4 pb-3", "data-testid": "agent-memory-panel", children: [error && (_jsx("div", { className: "text-feedback-red bg-feedback-red-light mb-2 rounded p-2 text-xs", children: error })), loading ? (_jsxs("div", { className: "text-neutral-grey-50 flex items-center gap-2 py-2 text-xs", children: [_jsx(Loader2, { className: "h-3 w-3 animate-spin", strokeWidth: 1.5 }), "Loading memories..."] })) : (_jsxs("div", { className: "flex flex-col gap-2", children: [memories.length === 0 && editingId !== "new" && (_jsxs("div", { className: "text-neutral-grey-50 flex items-center gap-2 py-2 text-xs", children: [_jsx(Brain, { className: "h-3.5 w-3.5", strokeWidth: 1.5 }), "No memories stored yet. The agent stores durable facts and preferences here as you work with it."] })), editingId === "new" && editorForm, memories.map((memory) => editingId === memory.id ? (_jsx(React.Fragment, { children: editorForm }, memory.id)) : (_jsxs("div", { className: "border-border-default group grid grid-cols-[minmax(0,1fr)_auto] items-start gap-x-2 rounded-md border bg-white px-2 py-1.5 text-[12px]", "data-testid": "agent-memory-entry", children: [_jsxs("div", { className: "min-w-0", children: [memory.title && (_jsx("div", { className: "text-neutral-grey-100 truncate leading-tight font-medium", children: memory.title })), _jsx("div", { className: "text-neutral-grey-100 leading-snug break-words whitespace-pre-wrap", children: memory.content }), _jsxs("div", { className: "text-neutral-grey-50 mt-0.5 text-[11px] leading-tight", children: ["Updated ", formatUpdatedDate(memory.updatedDate)] })] }), _jsxs("span", { className: "flex items-center gap-0.5", children: [_jsx("button", { onClick: () => startEdit(memory), className: "hover:bg-neutral-grey-10 rounded p-1", "aria-label": "Edit memory", title: "Edit memory", type: "button", children: _jsx(Pencil, { className: "h-3.5 w-3.5", strokeWidth: 1.5 }) }), _jsx("button", { onClick: () => handleDelete(memory), className: "hover:bg-neutral-grey-10 rounded p-1", "aria-label": "Delete memory", title: "Delete memory", type: "button", children: _jsx(DeleteIcon, { size: "sm" }) })] })] }, memory.id))), editingId === null && (_jsxs("button", { type: "button", onClick: startAdd, className: "text-highlight-100 hover:bg-neutral-grey-5 inline-flex w-fit items-center gap-1 rounded px-1 py-0.5 text-xs", "data-testid": "agent-memory-add", children: [_jsx(Plus, { className: "h-3 w-3", strokeWidth: 1.5 }), "Add memory"] }))] }))] }));
|
|
150
153
|
}
|
|
151
154
|
//# sourceMappingURL=AgentMemoryPanel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentMemoryPanel.js","sourceRoot":"","sources":["../../../../../src/editor/ai/terminal/components/AgentMemoryPanel.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAEL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,GAClB,MAAM,gCAAgC,CAAC;AAQxC;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAC/B,SAAS,EACT,UAAU,EACV,aAAa,GACS;IACtB,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAqB,EAAE,CAAC,CAAC;IACjE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACxD,+CAA+C;IAC/C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAChE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QAC1C,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,IAAI,CAAC;YACH,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,CAAC;YACjD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,WAAW,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;gBACnC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,yBAAyB,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;YAC9C,QAAQ,CAAC,yBAAyB,CAAC,CAAC;QACtC,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,YAAY,EAAE,CAAC;IACtB,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,SAAS,CAAC,GAAG,EAAE;QACb,aAAa,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"AgentMemoryPanel.js","sourceRoot":"","sources":["../../../../../src/editor/ai/terminal/components/AgentMemoryPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -8,23 +8,17 @@ import { cn } from "../../../../lib/utils";
|
|
|
8
8
|
const COMPACT_TERMINAL_WIDTH = 420;
|
|
9
9
|
const defaultModeMeta = {
|
|
10
10
|
Icon: ShieldCheck,
|
|
11
|
-
activeClassName: "text-
|
|
12
|
-
iconClassName: "text-feedback-orange",
|
|
13
|
-
labelClassName: "text-feedback-orange",
|
|
11
|
+
activeClassName: "text-neutral-grey-100 hover:text-neutral-grey-100 hover:bg-neutral-grey-10! bg-transparent!",
|
|
14
12
|
};
|
|
15
13
|
const modeIconMeta = {
|
|
16
14
|
supervised: defaultModeMeta,
|
|
17
15
|
autonomous: {
|
|
18
16
|
Icon: Zap,
|
|
19
17
|
activeClassName: "text-feedback-red hover:text-feedback-red hover:bg-neutral-grey-10! bg-transparent!",
|
|
20
|
-
iconClassName: "text-feedback-red",
|
|
21
|
-
labelClassName: "text-feedback-red",
|
|
22
18
|
},
|
|
23
19
|
"read-only": {
|
|
24
20
|
Icon: Eye,
|
|
25
|
-
activeClassName: "text-
|
|
26
|
-
iconClassName: "text-feedback-green",
|
|
27
|
-
labelClassName: "text-feedback-green",
|
|
21
|
+
activeClassName: "text-neutral-grey-100 hover:text-neutral-grey-100 hover:bg-neutral-grey-10! bg-transparent!",
|
|
28
22
|
},
|
|
29
23
|
};
|
|
30
24
|
function getModeMeta(mode) {
|
|
@@ -76,7 +70,7 @@ export function AgentModeSelector({ mode, options, readOnly, onModeChange, }) {
|
|
|
76
70
|
}, [onModeChange]);
|
|
77
71
|
return (_jsx("div", { ref: rootRef, className: "shrink-0", children: _jsxs(Popover, { open: open, onOpenChange: handleOpenChange, enableIframeClickDetection: false, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsxs(Button, { ref: triggerRef, variant: "outline", size: isCompact ? "iconSm" : "xs", disabled: readOnly, "data-testid": "agent-mode-selector", className: cn("focus-visible:border-neutral-grey-100 h-8 rounded-md border-0 text-[12px] font-medium shadow-none", isCompact
|
|
78
72
|
? "size-8 min-w-0 p-0"
|
|
79
|
-
: "w-auto min-w-[128px] justify-between gap-1.5 px-2", selectedMeta.activeClassName), title: `${selectedLabel} mode`, "aria-label": `${selectedLabel} mode`, "aria-expanded": open, children: [_jsxs("span", { className: cn("flex min-w-0 items-center", isCompact ? "justify-center" : "gap-1.5"), children: [_jsx(SelectedIcon, { className:
|
|
73
|
+
: "w-auto min-w-[128px] justify-between gap-1.5 px-2", selectedMeta.activeClassName), title: `${selectedLabel} mode`, "aria-label": `${selectedLabel} mode`, "aria-expanded": open, children: [_jsxs("span", { className: cn("flex min-w-0 items-center", isCompact ? "justify-center" : "gap-1.5"), children: [_jsx(SelectedIcon, { className: "size-4 shrink-0", strokeWidth: 1.75 }), isCompact ? (_jsx("span", { className: "sr-only", children: selectedLabel })) : (_jsx("span", { className: "truncate", children: selectedLabel }))] }), !isCompact ? (_jsx(ChevronDown, { className: "size-3 shrink-0 opacity-50" })) : null] }) }), _jsx(PopoverContent, { className: "p-0 text-xs", align: "start", sideOffset: 4, style: {
|
|
80
74
|
minWidth: triggerWidth
|
|
81
75
|
? `${Math.max(triggerWidth, 240)}px`
|
|
82
76
|
: "240px",
|
|
@@ -85,7 +79,7 @@ export function AgentModeSelector({ mode, options, readOnly, onModeChange, }) {
|
|
|
85
79
|
}, container: portalContainer, onMouseDown: (event) => event.stopPropagation(), onClick: (event) => event.stopPropagation(), children: _jsx(Command, { className: "w-full", children: _jsx(CommandList, { className: "max-h-[300px] w-full", children: _jsx(CommandGroup, { children: options.map((option) => {
|
|
86
80
|
const optionMeta = getModeMeta(option.value);
|
|
87
81
|
const OptionIcon = optionMeta.Icon;
|
|
88
|
-
return (_jsxs(CommandItem, { value: option.value, keywords: [option.label], onSelect: () => handleSelect(option.value), disabled: option.disabled, className:
|
|
82
|
+
return (_jsxs(CommandItem, { value: option.value, keywords: [option.label], onSelect: () => handleSelect(option.value), disabled: option.disabled, className: "flex items-start justify-between gap-3 p-2", children: [_jsxs("div", { className: "flex min-w-0 items-start gap-2", children: [_jsx(OptionIcon, { className: "text-neutral-grey-100 mt-0.5 size-4 shrink-0", strokeWidth: 1.75 }), _jsxs("div", { className: "flex min-w-0 flex-col gap-0.5", children: [_jsx("span", { className: "text-neutral-grey-100 font-normal whitespace-normal", children: option.label }), option.description ? (_jsx("div", { className: "text-neutral-grey-50 text-[10px] leading-tight whitespace-normal opacity-90", children: option.description })) : null] })] }), _jsx(Check, { className: cn("mt-0.5 size-4 shrink-0", mode === option.value ? "opacity-100" : "opacity-0"), strokeWidth: 1 })] }, option.value));
|
|
89
83
|
}) }) }) }) })] }) }));
|
|
90
84
|
}
|
|
91
85
|
//# sourceMappingURL=AgentModeSelector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentModeSelector.js","sourceRoot":"","sources":["../../../../../src/editor/ai/terminal/components/AgentModeSelector.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,EACL,KAAK,EACL,WAAW,EACX,GAAG,EACH,WAAW,EACX,GAAG,GAEJ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC1D,OAAO,EACL,OAAO,EACP,YAAY,EACZ,WAAW,EACX,WAAW,GACZ,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,OAAO,EACP,cAAc,EACd,cAAc,GACf,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,EAAE,EAAE,MAAM,uBAAuB,CAAC;AAS3C,MAAM,sBAAsB,GAAG,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"AgentModeSelector.js","sourceRoot":"","sources":["../../../../../src/editor/ai/terminal/components/AgentModeSelector.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { AiProfile } from "../../../services/aiService";
|
|
2
|
+
export interface AgentProfileSwitcherProps {
|
|
3
|
+
profiles: AiProfile[];
|
|
4
|
+
currentProfileId?: string;
|
|
5
|
+
onSelectProfile: (profileId: string) => Promise<void> | void;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
}
|
|
8
|
+
type ProfileGroup = {
|
|
9
|
+
category: string | undefined;
|
|
10
|
+
order: number;
|
|
11
|
+
profiles: AiProfile[];
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Groups selectable profiles by category, ordered by the smallest
|
|
15
|
+
* categoryOrder within each group; uncategorized profiles come last.
|
|
16
|
+
* Hidden profiles stay selectable when they are current or the default,
|
|
17
|
+
* so the (hidden-by-default) Parhelia profile remains reachable after
|
|
18
|
+
* switching away from it.
|
|
19
|
+
*/
|
|
20
|
+
export declare function getSwitchableProfileGroups(profiles: AiProfile[], currentProfileId?: string): ProfileGroup[];
|
|
21
|
+
/**
|
|
22
|
+
* "Looking for a specialist?" popover on the new-chat greeting: switches a
|
|
23
|
+
* draft agent to a different profile before the session starts.
|
|
24
|
+
*/
|
|
25
|
+
export declare function AgentProfileSwitcher({ profiles, currentProfileId, onSelectProfile, disabled, }: AgentProfileSwitcherProps): import("react").JSX.Element | null;
|
|
26
|
+
export {};
|