@forgecharts/sdk 1.1.36 → 1.2.3
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/api/DrawingManager.d.ts +1 -1
- package/dist/api/DrawingManager.d.ts.map +1 -1
- package/dist/api/LayoutManager.d.ts +2 -1
- package/dist/api/LayoutManager.d.ts.map +1 -1
- package/dist/api/ReferenceAPI.d.ts +5 -0
- package/dist/api/ReferenceAPI.d.ts.map +1 -1
- package/dist/api/TChart.d.ts +40 -0
- package/dist/api/TChart.d.ts.map +1 -1
- package/dist/api/drawing tools/fib gann menu/fibChannel.d.ts +4 -0
- package/dist/api/drawing tools/fib gann menu/fibChannel.d.ts.map +1 -0
- package/dist/api/drawing tools/fib gann menu/fibCircles.d.ts +4 -0
- package/dist/api/drawing tools/fib gann menu/fibCircles.d.ts.map +1 -0
- package/dist/api/drawing tools/fib gann menu/fibRetracement.d.ts.map +1 -1
- package/dist/api/drawing tools/fib gann menu/fibSpeedResistanceArcs.d.ts +4 -0
- package/dist/api/drawing tools/fib gann menu/fibSpeedResistanceArcs.d.ts.map +1 -0
- package/dist/api/drawing tools/fib gann menu/fibSpeedResistanceFan.d.ts +4 -0
- package/dist/api/drawing tools/fib gann menu/fibSpeedResistanceFan.d.ts.map +1 -0
- package/dist/api/drawing tools/fib gann menu/fibSpiral.d.ts +4 -0
- package/dist/api/drawing tools/fib gann menu/fibSpiral.d.ts.map +1 -0
- package/dist/api/drawing tools/fib gann menu/fibTimeZone.d.ts +4 -0
- package/dist/api/drawing tools/fib gann menu/fibTimeZone.d.ts.map +1 -0
- package/dist/api/drawing tools/fib gann menu/fibWedge.d.ts +4 -0
- package/dist/api/drawing tools/fib gann menu/fibWedge.d.ts.map +1 -0
- package/dist/api/drawing tools/fib gann menu/gannBox.d.ts +4 -0
- package/dist/api/drawing tools/fib gann menu/gannBox.d.ts.map +1 -0
- package/dist/api/drawing tools/fib gann menu/gannFan.d.ts +4 -0
- package/dist/api/drawing tools/fib gann menu/gannFan.d.ts.map +1 -0
- package/dist/api/drawing tools/fib gann menu/gannSquare.d.ts +4 -0
- package/dist/api/drawing tools/fib gann menu/gannSquare.d.ts.map +1 -0
- package/dist/api/drawing tools/fib gann menu/gannSquareFixed.d.ts +4 -0
- package/dist/api/drawing tools/fib gann menu/gannSquareFixed.d.ts.map +1 -0
- package/dist/api/drawing tools/fib gann menu/pitchfan.d.ts +4 -0
- package/dist/api/drawing tools/fib gann menu/pitchfan.d.ts.map +1 -0
- package/dist/api/drawing tools/fib gann menu/trendBasedFibExtension.d.ts +4 -0
- package/dist/api/drawing tools/fib gann menu/trendBasedFibExtension.d.ts.map +1 -0
- package/dist/api/drawing tools/fib gann menu/trendBasedFibTime.d.ts +4 -0
- package/dist/api/drawing tools/fib gann menu/trendBasedFibTime.d.ts.map +1 -0
- package/dist/api/drawing tools/shapes menu/anchoredText.d.ts +7 -0
- package/dist/api/drawing tools/shapes menu/anchoredText.d.ts.map +1 -0
- package/dist/api/drawing tools/shapes menu/arc.d.ts +8 -0
- package/dist/api/drawing tools/shapes menu/arc.d.ts.map +1 -0
- package/dist/api/drawing tools/shapes menu/arrow.d.ts +4 -0
- package/dist/api/drawing tools/shapes menu/arrow.d.ts.map +1 -0
- package/dist/api/drawing tools/shapes menu/arrowDown.d.ts +7 -0
- package/dist/api/drawing tools/shapes menu/arrowDown.d.ts.map +1 -0
- package/dist/api/drawing tools/shapes menu/arrowUp.d.ts +7 -0
- package/dist/api/drawing tools/shapes menu/arrowUp.d.ts.map +1 -0
- package/dist/api/drawing tools/shapes menu/callout.d.ts +7 -0
- package/dist/api/drawing tools/shapes menu/callout.d.ts.map +1 -0
- package/dist/api/drawing tools/shapes menu/dateRange.d.ts +4 -0
- package/dist/api/drawing tools/shapes menu/dateRange.d.ts.map +1 -0
- package/dist/api/drawing tools/shapes menu/ellipse.d.ts +4 -0
- package/dist/api/drawing tools/shapes menu/ellipse.d.ts.map +1 -0
- package/dist/api/drawing tools/shapes menu/longPosition.d.ts +4 -0
- package/dist/api/drawing tools/shapes menu/longPosition.d.ts.map +1 -0
- package/dist/api/drawing tools/shapes menu/priceLabel.d.ts +7 -0
- package/dist/api/drawing tools/shapes menu/priceLabel.d.ts.map +1 -0
- package/dist/api/drawing tools/shapes menu/priceRange.d.ts +4 -0
- package/dist/api/drawing tools/shapes menu/priceRange.d.ts.map +1 -0
- package/dist/api/drawing tools/shapes menu/shortPosition.d.ts +4 -0
- package/dist/api/drawing tools/shapes menu/shortPosition.d.ts.map +1 -0
- package/dist/api/drawing tools/shapes menu/triangle.d.ts +4 -0
- package/dist/api/drawing tools/shapes menu/triangle.d.ts.map +1 -0
- package/dist/core/Chart.d.ts +21 -2
- package/dist/core/Chart.d.ts.map +1 -1
- package/dist/core/CoordTransform.d.ts.map +1 -1
- package/dist/core/Crosshair.d.ts +2 -0
- package/dist/core/Crosshair.d.ts.map +1 -1
- package/dist/core/InteractionManager.d.ts +36 -2
- package/dist/core/InteractionManager.d.ts.map +1 -1
- package/dist/core/PriceScale.d.ts +2 -0
- package/dist/core/PriceScale.d.ts.map +1 -1
- package/dist/core/TimeScale.d.ts +52 -1
- package/dist/core/TimeScale.d.ts.map +1 -1
- package/dist/datafeed/DatafeedConnector.d.ts +4 -0
- package/dist/datafeed/DatafeedConnector.d.ts.map +1 -1
- package/dist/forgecharts.css +1938 -111
- package/dist/forgescript/ast.d.ts +71 -4
- package/dist/forgescript/ast.d.ts.map +1 -1
- package/dist/forgescript/builtins/collections.d.ts +56 -0
- package/dist/forgescript/builtins/collections.d.ts.map +1 -0
- package/dist/forgescript/builtins/drawing.d.ts +57 -0
- package/dist/forgescript/builtins/drawing.d.ts.map +1 -0
- package/dist/forgescript/builtins/udt.d.ts +30 -0
- package/dist/forgescript/builtins/udt.d.ts.map +1 -0
- package/dist/forgescript/conversion/index.d.ts +16 -9
- package/dist/forgescript/conversion/index.d.ts.map +1 -1
- package/dist/forgescript/conversion/types.d.ts +10 -54
- package/dist/forgescript/conversion/types.d.ts.map +1 -1
- package/dist/forgescript/conversion/validation.d.ts.map +1 -1
- package/dist/forgescript/datasets/DatasetStore.d.ts +65 -0
- package/dist/forgescript/datasets/DatasetStore.d.ts.map +1 -0
- package/dist/forgescript/datasets/parseDataset.d.ts +32 -0
- package/dist/forgescript/datasets/parseDataset.d.ts.map +1 -0
- package/dist/forgescript/parser.d.ts +19 -1
- package/dist/forgescript/parser.d.ts.map +1 -1
- package/dist/forgescript/runtime.d.ts +119 -104
- package/dist/forgescript/runtime.d.ts.map +1 -1
- package/dist/index.d.ts +3 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12034 -6683
- package/dist/index.js.map +1 -1
- package/dist/internal.d.ts +2 -0
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +13494 -8884
- package/dist/internal.js.map +1 -1
- package/dist/licensing/licenseTypes.d.ts +1 -0
- package/dist/licensing/licenseTypes.d.ts.map +1 -1
- package/dist/pixi/PixiBenchmark.d.ts +56 -0
- package/dist/pixi/PixiBenchmark.d.ts.map +1 -0
- package/dist/pixi/PixiCandlestickRenderer.d.ts +5 -6
- package/dist/pixi/PixiCandlestickRenderer.d.ts.map +1 -1
- package/dist/pixi/PixiChart.d.ts +100 -2
- package/dist/pixi/PixiChart.d.ts.map +1 -1
- package/dist/pixi/PixiCrosshairRenderer.d.ts +10 -0
- package/dist/pixi/PixiCrosshairRenderer.d.ts.map +1 -1
- package/dist/pixi/PixiDrawingRenderer.d.ts +17 -5
- package/dist/pixi/PixiDrawingRenderer.d.ts.map +1 -1
- package/dist/pixi/PixiGridRenderer.d.ts +16 -2
- package/dist/pixi/PixiGridRenderer.d.ts.map +1 -1
- package/dist/pixi/PixiHistogramRenderer.d.ts +17 -0
- package/dist/pixi/PixiHistogramRenderer.d.ts.map +1 -0
- package/dist/pixi/PixiIndicatorRenderer.d.ts +31 -0
- package/dist/pixi/PixiIndicatorRenderer.d.ts.map +1 -0
- package/dist/pixi/PixiLastPriceRenderer.d.ts +33 -0
- package/dist/pixi/PixiLastPriceRenderer.d.ts.map +1 -0
- package/dist/pixi/PixiLayerManager.d.ts.map +1 -1
- package/dist/pixi/PixiLineRenderer.d.ts +19 -0
- package/dist/pixi/PixiLineRenderer.d.ts.map +1 -0
- package/dist/pixi/PixiTradingRenderer.d.ts +46 -0
- package/dist/pixi/PixiTradingRenderer.d.ts.map +1 -0
- package/dist/react/agent/AgentFAB.d.ts +20 -0
- package/dist/react/agent/AgentFAB.d.ts.map +1 -0
- package/dist/react/agent/AgentProvider.d.ts +15 -0
- package/dist/react/agent/AgentProvider.d.ts.map +1 -0
- package/dist/react/agent/AgentUIBus.d.ts +111 -0
- package/dist/react/agent/AgentUIBus.d.ts.map +1 -0
- package/dist/react/agent/AssistantPanel.d.ts +12 -0
- package/dist/react/agent/AssistantPanel.d.ts.map +1 -0
- package/dist/react/agent/CommandDispatcher.d.ts +77 -0
- package/dist/react/agent/CommandDispatcher.d.ts.map +1 -0
- package/dist/react/agent/VoiceInput.d.ts +36 -0
- package/dist/react/agent/VoiceInput.d.ts.map +1 -0
- package/dist/react/agent/index.d.ts +18 -0
- package/dist/react/agent/index.d.ts.map +1 -0
- package/dist/react/agent/useAgent.d.ts +81 -0
- package/dist/react/agent/useAgent.d.ts.map +1 -0
- package/dist/react/canvas/ChartCanvas.d.ts +45 -0
- package/dist/react/canvas/ChartCanvas.d.ts.map +1 -1
- package/dist/react/canvas/ChartSettingsDialog.d.ts +80 -2
- package/dist/react/canvas/ChartSettingsDialog.d.ts.map +1 -1
- package/dist/react/canvas/ContractSwitchDialog.d.ts +22 -0
- package/dist/react/canvas/ContractSwitchDialog.d.ts.map +1 -0
- package/dist/react/canvas/DrawingPropertiesDialog.d.ts +23 -0
- package/dist/react/canvas/DrawingPropertiesDialog.d.ts.map +1 -0
- package/dist/react/canvas/IndicatorPane.d.ts.map +1 -1
- package/dist/react/canvas/PointerOverlay.d.ts +6 -3
- package/dist/react/canvas/PointerOverlay.d.ts.map +1 -1
- package/dist/react/canvas/PositionPropertiesDialog.d.ts +22 -0
- package/dist/react/canvas/PositionPropertiesDialog.d.ts.map +1 -0
- package/dist/react/canvas/toolbars/LeftToolbar.d.ts +6 -1
- package/dist/react/canvas/toolbars/LeftToolbar.d.ts.map +1 -1
- package/dist/react/hooks/useBrokerEvents.d.ts +9 -0
- package/dist/react/hooks/useBrokerEvents.d.ts.map +1 -1
- package/dist/react/hooks/usePanelDrag.d.ts +2 -0
- package/dist/react/hooks/usePanelDrag.d.ts.map +1 -0
- package/dist/react/index.d.ts +3 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +16158 -4468
- package/dist/react/index.js.map +1 -1
- package/dist/react/internal.js +23373 -10757
- package/dist/react/internal.js.map +1 -1
- package/dist/react/shell/DatasetImportPanel.d.ts +2 -0
- package/dist/react/shell/DatasetImportPanel.d.ts.map +1 -0
- package/dist/react/shell/DatasetManagerDrawer.d.ts +10 -0
- package/dist/react/shell/DatasetManagerDrawer.d.ts.map +1 -0
- package/dist/react/shell/DocsEditor.d.ts +10 -0
- package/dist/react/shell/DocsEditor.d.ts.map +1 -0
- package/dist/react/shell/ManagedAppShell.d.ts +27 -0
- package/dist/react/shell/ManagedAppShell.d.ts.map +1 -1
- package/dist/react/shell/OrderEntryPanel.d.ts +6 -1
- package/dist/react/shell/OrderEntryPanel.d.ts.map +1 -1
- package/dist/react/shell/ScriptDrawer.d.ts.map +1 -1
- package/dist/react/shell/ScriptSettings.d.ts +20 -0
- package/dist/react/shell/ScriptSettings.d.ts.map +1 -0
- package/dist/react/shell/TradeDrawer.d.ts.map +1 -1
- package/dist/react/shell/WatchlistDrawer.d.ts.map +1 -1
- package/dist/react/workspace/BottomTradingPanel.d.ts +75 -0
- package/dist/react/workspace/BottomTradingPanel.d.ts.map +1 -0
- package/dist/react/workspace/ChartWorkspace.d.ts +35 -1
- package/dist/react/workspace/ChartWorkspace.d.ts.map +1 -1
- package/dist/react/workspace/IndicatorsDialog.d.ts +5 -1
- package/dist/react/workspace/IndicatorsDialog.d.ts.map +1 -1
- package/dist/react/workspace/SymbolSearchDialog.d.ts.map +1 -1
- package/dist/react/workspace/toolbars/BottomToolbar.d.ts +3 -1
- package/dist/react/workspace/toolbars/BottomToolbar.d.ts.map +1 -1
- package/dist/react/workspace/toolbars/RightToolbar.d.ts +5 -1
- package/dist/react/workspace/toolbars/RightToolbar.d.ts.map +1 -1
- package/dist/react/workspace/toolbars/TopToolbar.d.ts +20 -1
- package/dist/react/workspace/toolbars/TopToolbar.d.ts.map +1 -1
- package/dist/renderers/CandlestickRenderer.d.ts.map +1 -1
- package/dist/theme/colors.d.ts.map +1 -1
- package/dist/trading/UnmanagedIngestion.d.ts +39 -12
- package/dist/trading/UnmanagedIngestion.d.ts.map +1 -1
- package/dist/trading/tradingTypes.d.ts +11 -2
- package/dist/trading/tradingTypes.d.ts.map +1 -1
- package/dist/types/ChartBackend.d.ts +61 -0
- package/dist/types/ChartBackend.d.ts.map +1 -0
- package/package.json +2 -2
- package/dist/forgescript/__tests__/ai-response-parser.test.d.ts +0 -2
- package/dist/forgescript/__tests__/ai-response-parser.test.d.ts.map +0 -1
- package/dist/forgescript/__tests__/orchestrator.test.d.ts +0 -2
- package/dist/forgescript/__tests__/orchestrator.test.d.ts.map +0 -1
- package/dist/forgescript/__tests__/pine-transpiler.test.d.ts +0 -2
- package/dist/forgescript/__tests__/pine-transpiler.test.d.ts.map +0 -1
- package/dist/forgescript/conversion/ai-conversion-agent.d.ts +0 -41
- package/dist/forgescript/conversion/ai-conversion-agent.d.ts.map +0 -1
- package/dist/forgescript/conversion/conversion-orchestrator.d.ts +0 -44
- package/dist/forgescript/conversion/conversion-orchestrator.d.ts.map +0 -1
- package/dist/forgescript/conversion/prompts/index.d.ts +0 -17
- package/dist/forgescript/conversion/prompts/index.d.ts.map +0 -1
- package/dist/forgescript/pine/PineCompiler.d.ts +0 -38
- package/dist/forgescript/pine/PineCompiler.d.ts.map +0 -1
- package/dist/forgescript/pine/diagnostics.d.ts +0 -20
- package/dist/forgescript/pine/diagnostics.d.ts.map +0 -1
- package/dist/forgescript/pine/index.d.ts +0 -8
- package/dist/forgescript/pine/index.d.ts.map +0 -1
- package/dist/forgescript/pine/pine-ast.d.ts +0 -190
- package/dist/forgescript/pine/pine-ast.d.ts.map +0 -1
- package/dist/forgescript/pine/pine-lexer.d.ts +0 -41
- package/dist/forgescript/pine/pine-lexer.d.ts.map +0 -1
- package/dist/forgescript/pine/pine-parser.d.ts +0 -108
- package/dist/forgescript/pine/pine-parser.d.ts.map +0 -1
- package/dist/forgescript/pine/pine-transpiler.d.ts +0 -40
- package/dist/forgescript/pine/pine-transpiler.d.ts.map +0 -1
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentUIBus
|
|
3
|
+
*
|
|
4
|
+
* A typed pub/sub bus that lets the AI agent drive real UI actions in real time.
|
|
5
|
+
* Components subscribe to the events they own; the CommandDispatcher emits them
|
|
6
|
+
* after executing a tool so the user sees the application responding live.
|
|
7
|
+
*
|
|
8
|
+
* Design principles:
|
|
9
|
+
* - One bus instance per agent session (singleton, reset on mount)
|
|
10
|
+
* - Purely in-memory — no persistence, no network
|
|
11
|
+
* - Components own their own reaction (open, animate, type) — the bus only
|
|
12
|
+
* carries intent, never DOM references
|
|
13
|
+
*/
|
|
14
|
+
export type AgentUIEventMap = {
|
|
15
|
+
/** Open or close the script drawer. */
|
|
16
|
+
'panel:script': {
|
|
17
|
+
open: boolean;
|
|
18
|
+
};
|
|
19
|
+
/** Open or close the watchlist drawer. */
|
|
20
|
+
'panel:watchlist': {
|
|
21
|
+
open: boolean;
|
|
22
|
+
};
|
|
23
|
+
/** Open or close the indicators dialog. */
|
|
24
|
+
'panel:indicators': {
|
|
25
|
+
open: boolean;
|
|
26
|
+
};
|
|
27
|
+
/** Open or close the bottom trading panel. */
|
|
28
|
+
'panel:trading': {
|
|
29
|
+
open: boolean;
|
|
30
|
+
};
|
|
31
|
+
/** Switch the active tab in the bottom trading panel. */
|
|
32
|
+
'panel:trading:tab': {
|
|
33
|
+
tab: 'orders' | 'positions' | 'history';
|
|
34
|
+
};
|
|
35
|
+
/** Highlight a timeframe button briefly after the agent changes it. */
|
|
36
|
+
'chart:timeframe:highlight': {
|
|
37
|
+
timeframe: string;
|
|
38
|
+
};
|
|
39
|
+
/** Highlight the symbol picker after the agent changes the symbol. */
|
|
40
|
+
'chart:symbol:highlight': {
|
|
41
|
+
symbol: string;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Stream source code into the script editor one chunk at a time.
|
|
45
|
+
* Emit this repeatedly with successive slices to get a typewriter effect.
|
|
46
|
+
* Emit with `done: true` on the last chunk.
|
|
47
|
+
*/
|
|
48
|
+
'script:type': {
|
|
49
|
+
chunk: string;
|
|
50
|
+
done: boolean;
|
|
51
|
+
scriptName?: string;
|
|
52
|
+
};
|
|
53
|
+
/** Clear the script editor and reset to a blank state. */
|
|
54
|
+
'script:clear': Record<string, never>;
|
|
55
|
+
/** Flash the "Run" / "Add to chart" button after script is fully typed. */
|
|
56
|
+
'script:ready': Record<string, never>;
|
|
57
|
+
/** Reload the saved scripts list (e.g. after delete). */
|
|
58
|
+
'script:reload': Record<string, never>;
|
|
59
|
+
/**
|
|
60
|
+
* Tell the ScriptDrawer to set its activeScriptId so subsequent saves
|
|
61
|
+
* update the script as a new version rather than creating a duplicate.
|
|
62
|
+
*/
|
|
63
|
+
'script:activate': {
|
|
64
|
+
scriptId: string;
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Tell the ScriptDrawer to attach (Add to Chart) using its current code.
|
|
68
|
+
* Equivalent to the user clicking the "Add to Chart" button.
|
|
69
|
+
*/
|
|
70
|
+
'script:attach': Record<string, never>;
|
|
71
|
+
/** Flash/highlight a symbol row that was just added by the agent. */
|
|
72
|
+
'watchlist:highlight': {
|
|
73
|
+
symbol: string;
|
|
74
|
+
};
|
|
75
|
+
/** Briefly highlight an indicator row in the dialog after it was added. */
|
|
76
|
+
'indicators:highlight': {
|
|
77
|
+
indicatorType: string;
|
|
78
|
+
};
|
|
79
|
+
/** Show a brief toast/flash when drawings are added or cleared. */
|
|
80
|
+
'drawings:feedback': {
|
|
81
|
+
action: 'added' | 'cleared';
|
|
82
|
+
drawingType?: string;
|
|
83
|
+
};
|
|
84
|
+
};
|
|
85
|
+
export type AgentUIEventName = keyof AgentUIEventMap;
|
|
86
|
+
type Handler<T> = (payload: T) => void;
|
|
87
|
+
declare class AgentUIBusImpl {
|
|
88
|
+
private listeners;
|
|
89
|
+
on<K extends AgentUIEventName>(event: K, handler: Handler<AgentUIEventMap[K]>): void;
|
|
90
|
+
off<K extends AgentUIEventName>(event: K, handler: Handler<AgentUIEventMap[K]>): void;
|
|
91
|
+
emit<K extends AgentUIEventName>(event: K, payload: AgentUIEventMap[K]): void;
|
|
92
|
+
/** Remove all listeners (call on unmount to avoid leaks). */
|
|
93
|
+
clear(): void;
|
|
94
|
+
}
|
|
95
|
+
export declare const AgentUIBus: AgentUIBusImpl;
|
|
96
|
+
/**
|
|
97
|
+
* Subscribe to an AgentUIBus event for the lifetime of the component.
|
|
98
|
+
* Automatically unsubscribes on unmount.
|
|
99
|
+
*/
|
|
100
|
+
export declare function useAgentUIEvent<K extends AgentUIEventName>(event: K, handler: Handler<AgentUIEventMap[K]>): void;
|
|
101
|
+
/**
|
|
102
|
+
* Stream a string into the script editor with a typewriter effect.
|
|
103
|
+
* Emits `script:type` events one chunk at a time, then `script:ready`.
|
|
104
|
+
*
|
|
105
|
+
* @param source Full source code string to type
|
|
106
|
+
* @param msPerChar Delay between characters in ms (default 12)
|
|
107
|
+
* @param chunkSize Characters per emit (default 3 — balances realism vs speed)
|
|
108
|
+
*/
|
|
109
|
+
export declare function streamCodeToEditor(source: string, msPerChar?: number, chunkSize?: number): Promise<void>;
|
|
110
|
+
export {};
|
|
111
|
+
//# sourceMappingURL=AgentUIBus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentUIBus.d.ts","sourceRoot":"","sources":["../../../src/react/agent/AgentUIBus.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ChartContextSnapshot } from '@forgecharts/types';
|
|
2
|
+
type AssistantPanelProps = {
|
|
3
|
+
onClose: () => void;
|
|
4
|
+
chartContext: ChartContextSnapshot;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* AssistantPanel — inline drawer panel (right of RightToolbar).
|
|
8
|
+
* Styled like WatchlistDrawer — no position:fixed.
|
|
9
|
+
*/
|
|
10
|
+
export declare function AssistantPanel({ onClose, chartContext }: AssistantPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=AssistantPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AssistantPanel.d.ts","sourceRoot":"","sources":["../../../src/react/agent/AssistantPanel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAA+B,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE5F,KAAK,mBAAmB,GAAG;IACzB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,YAAY,EAAE,oBAAoB,CAAC;CACpC,CAAC;AA6FF;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,mBAAmB,2CAuN5E"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import type { IPublicChart, AgentToolCall } from '@forgecharts/types';
|
|
2
|
+
/**
|
|
3
|
+
* Result of a tool execution.
|
|
4
|
+
*/
|
|
5
|
+
export type ToolResult = {
|
|
6
|
+
ok: boolean;
|
|
7
|
+
data?: unknown;
|
|
8
|
+
error?: string;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Extended chart interface for agent tool handlers.
|
|
12
|
+
* These methods may be provided by the host application's IPublicChart
|
|
13
|
+
* implementation. Handlers use try/catch so missing methods fail gracefully.
|
|
14
|
+
*/
|
|
15
|
+
type ExtendedChart = IPublicChart & {
|
|
16
|
+
scrollToDate?(timestamp: number): void;
|
|
17
|
+
setVisibleRange?(from: number, to: number): void;
|
|
18
|
+
getIndicators?(): unknown[];
|
|
19
|
+
updateIndicator?(id: string, params: Record<string, unknown>): void;
|
|
20
|
+
setIndicatorVisible?(id: string, visible: boolean): void;
|
|
21
|
+
getIndicatorValues?(id: string, limit: number): unknown;
|
|
22
|
+
getAvailableIndicators?(): unknown[];
|
|
23
|
+
getDrawings?(): unknown[];
|
|
24
|
+
removeDrawing?(id: string): void;
|
|
25
|
+
updateDrawing?(id: string, props: unknown): void;
|
|
26
|
+
getDrawingTypes?(): string[];
|
|
27
|
+
getLayouts?(): unknown[];
|
|
28
|
+
deleteLayout?(id: string): void;
|
|
29
|
+
getWatchlist?(): unknown;
|
|
30
|
+
addToWatchlist?(symbol: string): void;
|
|
31
|
+
removeFromWatchlist?(symbol: string): void;
|
|
32
|
+
getScripts?(): unknown[] | Promise<unknown[]>;
|
|
33
|
+
getScriptSource?(id: string): string;
|
|
34
|
+
createScript?(name: string, source: string): string | Promise<string>;
|
|
35
|
+
deleteScript?(id: string): void | Promise<void>;
|
|
36
|
+
updateScriptSource?(id: string, source: string): void;
|
|
37
|
+
validateScript?(source: string): unknown;
|
|
38
|
+
compileAndAttachScript?(id: string): void;
|
|
39
|
+
detachScript?(id: string): void;
|
|
40
|
+
getScriptConsole?(id: string, limit: number): string[];
|
|
41
|
+
runBacktest?(params: unknown): unknown;
|
|
42
|
+
getBacktestTrades?(): unknown[];
|
|
43
|
+
getBacktestEquityCurve?(): unknown;
|
|
44
|
+
plotBacktestEquity?(pane: string): void;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* CommandDispatcher — Executes tool calls against IPublicChart.
|
|
48
|
+
*
|
|
49
|
+
* This is a pure TypeScript class (not a React component) that bridges
|
|
50
|
+
* agent tool calls to chart operations. It handles both client-side
|
|
51
|
+
* operations (chart navigation, indicators, drawings) and server-side
|
|
52
|
+
* operations (data queries, scripts, trading).
|
|
53
|
+
*
|
|
54
|
+
* For server-side tools, it returns a placeholder response since the
|
|
55
|
+
* actual execution happens at the API layer.
|
|
56
|
+
*/
|
|
57
|
+
export declare class CommandDispatcher {
|
|
58
|
+
private chart;
|
|
59
|
+
private handlers;
|
|
60
|
+
constructor(chart: ExtendedChart);
|
|
61
|
+
/**
|
|
62
|
+
* Register all tool handlers.
|
|
63
|
+
*/
|
|
64
|
+
private registerHandlers;
|
|
65
|
+
/**
|
|
66
|
+
* Execute a tool call, emit AgentUIBus side-effects, and return the result.
|
|
67
|
+
* UI side-effects run AFTER the data operation so the panel opens with data ready.
|
|
68
|
+
*/
|
|
69
|
+
execute(toolCall: AgentToolCall): Promise<ToolResult>;
|
|
70
|
+
/**
|
|
71
|
+
* Emit AgentUIBus events that animate the UI after a successful tool call.
|
|
72
|
+
* Each case maps a tool name to the panel/action it should drive.
|
|
73
|
+
*/
|
|
74
|
+
private _emitUIEffect;
|
|
75
|
+
}
|
|
76
|
+
export {};
|
|
77
|
+
//# sourceMappingURL=CommandDispatcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandDispatcher.d.ts","sourceRoot":"","sources":["../../../src/react/agent/CommandDispatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VoiceInput — Web Speech API wrapper for voice-to-text.
|
|
3
|
+
*
|
|
4
|
+
* Provides a simple interface to the browser's speech recognition API.
|
|
5
|
+
* Handles both interim results (as the user is speaking) and final results
|
|
6
|
+
* (when the user stops speaking).
|
|
7
|
+
*/
|
|
8
|
+
export declare class VoiceInput {
|
|
9
|
+
private recognition;
|
|
10
|
+
private onInterim;
|
|
11
|
+
private onFinal;
|
|
12
|
+
private onError;
|
|
13
|
+
/**
|
|
14
|
+
* Check if the browser supports the Web Speech API.
|
|
15
|
+
*/
|
|
16
|
+
static isSupported(): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Start listening for speech input.
|
|
19
|
+
*
|
|
20
|
+
* @param callbacks - Event handlers for interim, final, and error states
|
|
21
|
+
*/
|
|
22
|
+
start(callbacks: {
|
|
23
|
+
onInterim: (text: string) => void;
|
|
24
|
+
onFinal: (text: string) => void;
|
|
25
|
+
onError: (error: string) => void;
|
|
26
|
+
}): void;
|
|
27
|
+
/**
|
|
28
|
+
* Stop listening and clean up.
|
|
29
|
+
*/
|
|
30
|
+
stop(): void;
|
|
31
|
+
/**
|
|
32
|
+
* Abort the current recognition session.
|
|
33
|
+
*/
|
|
34
|
+
abort(): void;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=VoiceInput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VoiceInput.d.ts","sourceRoot":"","sources":["../../../src/react/agent/VoiceInput.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA2CH,qBAAa,UAAU;IACrB,OAAO,CAAC,WAAW,CAA0C;IAC7D,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,OAAO,CAAyC;IACxD,OAAO,CAAC,OAAO,CAA0C;IAEzD;;OAEG;IACH,MAAM,CAAC,WAAW,IAAI,OAAO;IAO7B;;;;OAIG;IACH,KAAK,CAAC,SAAS,EAAE;QACf,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;QAClC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;QAChC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;KAClC,GAAG,IAAI;IAkFR;;OAEG;IACH,IAAI,IAAI,IAAI;IAOZ;;OAEG;IACH,KAAK,IAAI,IAAI;CAMd"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent system exports.
|
|
3
|
+
*
|
|
4
|
+
* The agent system provides:
|
|
5
|
+
* - AgentProvider: State management and SSE streaming
|
|
6
|
+
* - useAgent: Hook to access agent state and actions
|
|
7
|
+
* - AgentFAB: Floating action button for initiating conversations
|
|
8
|
+
* - AssistantPanel: Chat panel UI
|
|
9
|
+
* - CommandDispatcher: Executes tool calls against IPublicChart
|
|
10
|
+
* - VoiceInput: Web Speech API wrapper
|
|
11
|
+
*/
|
|
12
|
+
export { AgentProvider } from './AgentProvider';
|
|
13
|
+
export { useAgent, AgentContext, type AgentConfig, type AgentContextValue, } from './useAgent';
|
|
14
|
+
export { AgentFAB } from './AgentFAB';
|
|
15
|
+
export { AssistantPanel } from './AssistantPanel';
|
|
16
|
+
export { CommandDispatcher, type ToolResult } from './CommandDispatcher';
|
|
17
|
+
export { VoiceInput } from './VoiceInput';
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/agent/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,KAAK,WAAW,EAChB,KAAK,iBAAiB,GACvB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { AgentMessage, FABState, ChartContextSnapshot, AgentApprovalRequest } from '@forgecharts/types';
|
|
2
|
+
/**
|
|
3
|
+
* Configuration for the Agent system.
|
|
4
|
+
*/
|
|
5
|
+
export type AgentConfig = {
|
|
6
|
+
apiUrl: string;
|
|
7
|
+
getAuthToken: () => string | Promise<string>;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Context value exposed by AgentProvider.
|
|
11
|
+
*/
|
|
12
|
+
export type AgentContextValue = {
|
|
13
|
+
/** All messages in the current conversation. */
|
|
14
|
+
messages: AgentMessage[];
|
|
15
|
+
/** Visual state of the floating action button. */
|
|
16
|
+
fabState: FABState;
|
|
17
|
+
/** True while streaming a response from the API. */
|
|
18
|
+
isStreaming: boolean;
|
|
19
|
+
/** Pending approval for a destructive tool call, or null. */
|
|
20
|
+
pendingApproval: AgentApprovalRequest | null;
|
|
21
|
+
/** Deep analysis mode toggle. */
|
|
22
|
+
deepAnalysis: boolean;
|
|
23
|
+
/** Current error message, or null if no error. */
|
|
24
|
+
error: string | null;
|
|
25
|
+
/** Token usage for the last response, or null. */
|
|
26
|
+
usage: {
|
|
27
|
+
inputTokens: number;
|
|
28
|
+
outputTokens: number;
|
|
29
|
+
} | null;
|
|
30
|
+
/** True while the initial chat history is being loaded from the server. */
|
|
31
|
+
historyLoading: boolean;
|
|
32
|
+
/** Index into `messages` where the current session starts (messages before this are loaded history). */
|
|
33
|
+
sessionStart: number;
|
|
34
|
+
/**
|
|
35
|
+
* Sends a message to the agent and streams the response.
|
|
36
|
+
* Automatically sets up SSE listening and dispatches tool calls.
|
|
37
|
+
*/
|
|
38
|
+
sendMessage: (text: string, chartContext: ChartContextSnapshot) => Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* Updates a tool call with its result.
|
|
41
|
+
* Called by CommandDispatcher after executing a tool.
|
|
42
|
+
*/
|
|
43
|
+
handleToolResult: (toolCallId: string, result: {
|
|
44
|
+
ok: boolean;
|
|
45
|
+
data?: unknown;
|
|
46
|
+
error?: string;
|
|
47
|
+
}) => void;
|
|
48
|
+
/**
|
|
49
|
+
* Approves a pending destructive tool call.
|
|
50
|
+
* Changes status from 'approval_required' to 'pending'.
|
|
51
|
+
*/
|
|
52
|
+
approveAction: (toolCallId: string) => void;
|
|
53
|
+
/**
|
|
54
|
+
* Rejects a pending destructive tool call.
|
|
55
|
+
* Changes status to 'rejected'.
|
|
56
|
+
*/
|
|
57
|
+
rejectAction: (toolCallId: string) => void;
|
|
58
|
+
/**
|
|
59
|
+
* Sets the FAB visual state.
|
|
60
|
+
*/
|
|
61
|
+
setFabState: (state: FABState) => void;
|
|
62
|
+
/**
|
|
63
|
+
* Toggles deep analysis mode.
|
|
64
|
+
*/
|
|
65
|
+
setDeepAnalysis: (on: boolean) => void;
|
|
66
|
+
/**
|
|
67
|
+
* Clears all messages from the conversation.
|
|
68
|
+
*/
|
|
69
|
+
clearMessages: () => void;
|
|
70
|
+
/**
|
|
71
|
+
* Aborts the current streaming response.
|
|
72
|
+
*/
|
|
73
|
+
cancelStream: () => void;
|
|
74
|
+
};
|
|
75
|
+
export declare const AgentContext: import("react").Context<AgentContextValue | null>;
|
|
76
|
+
/**
|
|
77
|
+
* Hook to access the agent context.
|
|
78
|
+
* Must be called within an AgentProvider.
|
|
79
|
+
*/
|
|
80
|
+
export declare function useAgent(): AgentContextValue;
|
|
81
|
+
//# sourceMappingURL=useAgent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAgent.d.ts","sourceRoot":"","sources":["../../../src/react/agent/useAgent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,EACZ,QAAQ,EACR,oBAAoB,EAEpB,oBAAoB,EAErB,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAG9B,gDAAgD;IAChD,QAAQ,EAAE,YAAY,EAAE,CAAC;IAEzB,kDAAkD;IAClD,QAAQ,EAAE,QAAQ,CAAC;IAEnB,oDAAoD;IACpD,WAAW,EAAE,OAAO,CAAC;IAErB,6DAA6D;IAC7D,eAAe,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAE7C,iCAAiC;IACjC,YAAY,EAAE,OAAO,CAAC;IAEtB,kDAAkD;IAClD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAErB,kDAAkD;IAClD,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAE5D,2EAA2E;IAC3E,cAAc,EAAE,OAAO,CAAC;IAExB,wGAAwG;IACxG,YAAY,EAAE,MAAM,CAAC;IAIrB;;;OAGG;IACH,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjF;;;OAGG;IACH,gBAAgB,EAAE,CAChB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KACpD,IAAI,CAAC;IAEV;;;OAGG;IACH,aAAa,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAE5C;;;OAGG;IACH,YAAY,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAE3C;;OAEG;IACH,WAAW,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IAEvC;;OAEG;IACH,eAAe,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,IAAI,CAAC;IAEvC;;OAEG;IACH,aAAa,EAAE,MAAM,IAAI,CAAC;IAE1B;;OAEG;IACH,YAAY,EAAE,MAAM,IAAI,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,YAAY,mDAAgD,CAAC;AAE1E;;;GAGG;AACH,wBAAgB,QAAQ,IAAI,iBAAiB,CAM5C"}
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
import type { TradingOverlayStore } from '../../';
|
|
15
15
|
import type { DrawingToolType, PointerToolType, IndicatorConfig, ChartLayout, IDatafeed, ChartTheme } from '../../';
|
|
16
16
|
import type { TradingBridgeCallbacks } from '../trading/TradingBridge';
|
|
17
|
+
import type { CanvasSettings, ChartTemplate } from './ChartSettingsDialog';
|
|
17
18
|
export type ChartCanvasHandle = {
|
|
18
19
|
/** Returns the full current chart state (indicators, drawings, viewport). */
|
|
19
20
|
getLayoutSnapshot: () => ChartLayout | null;
|
|
@@ -21,6 +22,10 @@ export type ChartCanvasHandle = {
|
|
|
21
22
|
loadLayoutSnapshot: (layout: ChartLayout) => void;
|
|
22
23
|
/** Adds an indicator to the live chart and returns its id. */
|
|
23
24
|
addIndicator: (config: IndicatorConfig) => string | null;
|
|
25
|
+
/** Returns the number of indicators currently active on this chart. */
|
|
26
|
+
getIndicatorCount: () => number;
|
|
27
|
+
/** Returns all active indicators on this chart. */
|
|
28
|
+
getIndicators: () => readonly import('@forgecharts/types').IndicatorInstance[];
|
|
24
29
|
/** Captures the visible chart area as a PNG data-URL. */
|
|
25
30
|
captureScreenshot: () => Promise<string | null>;
|
|
26
31
|
/**
|
|
@@ -31,6 +36,8 @@ export type ChartCanvasHandle = {
|
|
|
31
36
|
getOverlayStore: () => TradingOverlayStore | null;
|
|
32
37
|
/** Programmatically activates a pointer tool (cursor / crosshair / dot / demonstration). */
|
|
33
38
|
selectPointerTool: (tool: PointerToolType) => void;
|
|
39
|
+
/** Returns the last bar's close price, or 0 if no data. */
|
|
40
|
+
getLastPrice: () => number;
|
|
34
41
|
};
|
|
35
42
|
export type ChartCanvasProps = {
|
|
36
43
|
symbol: string;
|
|
@@ -49,6 +56,8 @@ export type ChartCanvasProps = {
|
|
|
49
56
|
layoutToRestore?: ChartLayout | undefined;
|
|
50
57
|
/** Called whenever an indicator is added or removed, so the parent can trigger a workspace save. */
|
|
51
58
|
onIndicatorsChanged?: () => void;
|
|
59
|
+
/** Called whenever a drawing is created, updated (including property edits), moved, or removed, so the parent can trigger a workspace save. */
|
|
60
|
+
onDrawingsChanged?: () => void;
|
|
52
61
|
/**
|
|
53
62
|
* Initial price-pane fraction (0.3–0.85). Defaults to 0.6.
|
|
54
63
|
* The parent controls persistence; changes are reported via onPriceFractionChange.
|
|
@@ -75,6 +84,12 @@ export type ChartCanvasProps = {
|
|
|
75
84
|
getAuthToken?: () => string | Promise<string>;
|
|
76
85
|
/** Base URL for the ForgeCharts API, used by the profile drawer. Defaults to same origin. */
|
|
77
86
|
apiUrl?: string;
|
|
87
|
+
/**
|
|
88
|
+
* Opaque key that changes when the active data provider changes (e.g. Rithmic connects).
|
|
89
|
+
* Causes the contract-switch roll-date fetch to re-run so markers appear after a
|
|
90
|
+
* provider session starts, even if the initial fetch returned empty results.
|
|
91
|
+
*/
|
|
92
|
+
providerKey?: string | null;
|
|
78
93
|
/** Initial drawing-tool favorites shown in the floating toolbar. Persisted and reported via onDrawingFavoritesChange. */
|
|
79
94
|
drawingFavorites?: DrawingToolType[];
|
|
80
95
|
/** Called when the user stars/unstars a drawing tool so the parent can persist the list. */
|
|
@@ -86,6 +101,13 @@ export type ChartCanvasProps = {
|
|
|
86
101
|
initialActiveTool?: PointerToolType;
|
|
87
102
|
/** Called whenever the user selects a pointer tool, so the parent can persist the choice. */
|
|
88
103
|
onPointerToolChange?: (tool: PointerToolType) => void;
|
|
104
|
+
/**
|
|
105
|
+
* Initial magnet snap mode. Defaults to `'snap-xy'`.
|
|
106
|
+
* Provided by the parent for workspace persistence.
|
|
107
|
+
*/
|
|
108
|
+
initialMagnetMode?: import('@forgecharts/types').MagnetMode;
|
|
109
|
+
/** Called when the user changes the magnet mode, so the parent can persist the choice. */
|
|
110
|
+
onMagnetModeChange?: (mode: import('@forgecharts/types').MagnetMode) => void;
|
|
89
111
|
/**
|
|
90
112
|
* Optional trading bridge callbacks for Unmanaged mode.
|
|
91
113
|
*
|
|
@@ -98,6 +120,29 @@ export type ChartCanvasProps = {
|
|
|
98
120
|
* console output of every emitted intent.
|
|
99
121
|
*/
|
|
100
122
|
tradingBridge?: TradingBridgeCallbacks;
|
|
123
|
+
/**
|
|
124
|
+
* Rendering backend. Defaults to `'canvas'` (Canvas 2D).
|
|
125
|
+
* Set to `'pixi'` for GPU-accelerated rendering via PixiJS.
|
|
126
|
+
*/
|
|
127
|
+
renderBackend?: 'canvas' | 'pixi';
|
|
128
|
+
/** Initial canvas settings (background, grid, contract switches) restored from the workspace. */
|
|
129
|
+
initialCanvasSettings?: CanvasSettings;
|
|
130
|
+
/** Called when the user applies canvas settings so the parent can persist the change. */
|
|
131
|
+
onCanvasSettingsChange?: (settings: CanvasSettings) => void;
|
|
132
|
+
/** Called when the user selects a specific contract from the contract switch dialog. */
|
|
133
|
+
onSymbolChange?: (symbol: string) => void;
|
|
134
|
+
/** Saved chart-settings templates. */
|
|
135
|
+
chartTemplates?: ChartTemplate[];
|
|
136
|
+
/** Called to save/update a template. */
|
|
137
|
+
onSaveTemplate?: (template: ChartTemplate) => void;
|
|
138
|
+
/** Called to delete a template. */
|
|
139
|
+
onDeleteTemplate?: (name: string) => void;
|
|
140
|
+
/** The default canvas settings used when user clicks "Apply defaults". */
|
|
141
|
+
defaultCanvasSettings?: CanvasSettings;
|
|
142
|
+
/** Called when the user clicks a position overlay label on the chart. */
|
|
143
|
+
onPositionClick?: (positionId: string) => void;
|
|
144
|
+
/** Called when the user finishes dragging an SL/TP order line to a new price. */
|
|
145
|
+
onOrderDragEnd?: (orderId: string, newPrice: number) => void;
|
|
101
146
|
};
|
|
102
147
|
/** @deprecated Use ChartCanvasProps */
|
|
103
148
|
export type MultiPaneChartProps = ChartCanvasProps;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartCanvas.d.ts","sourceRoot":"","sources":["../../../src/react/canvas/ChartCanvas.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,KAAK,EACM,eAAe,EAAa,eAAe,EACjC,eAAe,EAAE,WAAW,EAAE,SAAS,EACjE,UAAU,EACX,MAAM,QAAQ,CAAC;AAGhB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"ChartCanvas.d.ts","sourceRoot":"","sources":["../../../src/react/canvas/ChartCanvas.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* ChartSettingsDialog —
|
|
2
|
+
* ChartSettingsDialog — chart settings modal.
|
|
3
3
|
*
|
|
4
4
|
* Sections (sidebar nav):
|
|
5
|
+
* • Symbol — candle colors, data modification, precision, timezone
|
|
5
6
|
* • Canvas — background color, grid visibility, grid color
|
|
7
|
+
* • Events — contract switches on continuous futures
|
|
6
8
|
*
|
|
7
9
|
* Additional sections can be added by extending SECTIONS and adding a matching
|
|
8
10
|
* content renderer in renderContent().
|
|
@@ -10,16 +12,92 @@
|
|
|
10
12
|
* The parent passes `initialSettings` and receives the final values via `onApply`.
|
|
11
13
|
* Nothing is persisted here; persistence (localStorage / DB) lives in the parent.
|
|
12
14
|
*/
|
|
15
|
+
export type CandleColors = {
|
|
16
|
+
bodyUp: string;
|
|
17
|
+
bodyDown: string;
|
|
18
|
+
borderUp: string;
|
|
19
|
+
borderDown: string;
|
|
20
|
+
wickUp: string;
|
|
21
|
+
wickDown: string;
|
|
22
|
+
};
|
|
13
23
|
export type CanvasSettings = {
|
|
14
24
|
background: string;
|
|
15
25
|
gridColor: string;
|
|
16
26
|
gridVisible: boolean;
|
|
27
|
+
gridAlpha: number;
|
|
28
|
+
gridWidth: number;
|
|
29
|
+
/** Show vertical "Contract Switch" markers at roll dates on continuous futures. */
|
|
30
|
+
showContractSwitches: boolean;
|
|
31
|
+
/** Color candles based on close vs previous close instead of open vs close. */
|
|
32
|
+
colorByPrevClose: boolean;
|
|
33
|
+
/** Candle body/border/wick colors. */
|
|
34
|
+
candle: CandleColors;
|
|
35
|
+
/** Show candle borders. */
|
|
36
|
+
borderVisible: boolean;
|
|
37
|
+
/** Show candle wicks. */
|
|
38
|
+
wickVisible: boolean;
|
|
39
|
+
/** Price precision override: 'default' = auto-heuristic, or explicit decimal count. */
|
|
40
|
+
precision: 'default' | number;
|
|
41
|
+
/** Use settlement price as close on daily interval. */
|
|
42
|
+
useSettlement: boolean;
|
|
43
|
+
/** Adjust for contract changes (back-adjust continuous data). */
|
|
44
|
+
adjustForContractChanges: boolean;
|
|
45
|
+
/** Countdown to bar close displayed on the price scale. */
|
|
46
|
+
countdownToBarClose: boolean;
|
|
47
|
+
/** Currency & unit visibility on price scale: 'mouse-over' | 'always' | 'never'. */
|
|
48
|
+
currencyAndUnit: 'mouse-over' | 'always' | 'never';
|
|
49
|
+
/** Show day of week on time axis labels. */
|
|
50
|
+
dayOfWeekOnLabels: boolean;
|
|
51
|
+
/** Date format used on the time axis. */
|
|
52
|
+
dateFormat: string;
|
|
53
|
+
/** Time hours format: '24' or '12'. */
|
|
54
|
+
timeHoursFormat: '24' | '12';
|
|
55
|
+
/** Preserve chart left-edge scroll position when changing interval. */
|
|
56
|
+
saveLeftEdgePosition: boolean;
|
|
57
|
+
/** Status line (top-left overlay) visibility settings. */
|
|
58
|
+
statusLine: {
|
|
59
|
+
showLogo: boolean;
|
|
60
|
+
showTitle: boolean;
|
|
61
|
+
/** Title display mode: 'description' | 'ticker' | 'ticker-description'. */
|
|
62
|
+
titleMode: 'description' | 'ticker' | 'ticker-description';
|
|
63
|
+
showOpenMarketStatus: boolean;
|
|
64
|
+
showChartValues: boolean;
|
|
65
|
+
showBarChangeValues: boolean;
|
|
66
|
+
showVolume: boolean;
|
|
67
|
+
showLastDayChangeValues: boolean;
|
|
68
|
+
/** Indicator overlay labels. */
|
|
69
|
+
showIndicatorTitles: boolean;
|
|
70
|
+
showIndicatorInputs: boolean;
|
|
71
|
+
showIndicatorValues: boolean;
|
|
72
|
+
showBackground: boolean;
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
/** A named chart-settings template. */
|
|
76
|
+
export type ChartTemplate = {
|
|
77
|
+
name: string;
|
|
78
|
+
settings: CanvasSettings;
|
|
17
79
|
};
|
|
18
80
|
type Props = {
|
|
19
81
|
initialSettings: CanvasSettings;
|
|
20
82
|
onApply: (settings: CanvasSettings) => void;
|
|
21
83
|
onClose: () => void;
|
|
84
|
+
/** Live preview: called on every settings change so the chart updates in real time. */
|
|
85
|
+
onPreview?: (settings: CanvasSettings) => void;
|
|
86
|
+
/** Called when the user cancels — allows the caller to revert the preview. */
|
|
87
|
+
onCancel?: () => void;
|
|
88
|
+
/** Current timezone, shown in the Symbol section for reference. */
|
|
89
|
+
timezone?: string;
|
|
90
|
+
/** Called when the user changes timezone from the Symbol section. */
|
|
91
|
+
onTimezoneChange?: (tz: string) => void;
|
|
92
|
+
/** Saved chart-settings templates. */
|
|
93
|
+
templates?: ChartTemplate[];
|
|
94
|
+
/** Called to persist a new or updated template. */
|
|
95
|
+
onSaveTemplate?: (template: ChartTemplate) => void;
|
|
96
|
+
/** Called to delete a template by name. */
|
|
97
|
+
onDeleteTemplate?: (name: string) => void;
|
|
98
|
+
/** The default settings used for "Apply defaults". */
|
|
99
|
+
defaultSettings?: CanvasSettings;
|
|
22
100
|
};
|
|
23
|
-
export declare function ChartSettingsDialog({ initialSettings, onApply, onClose }: Props): import("react/jsx-runtime").JSX.Element;
|
|
101
|
+
export declare function ChartSettingsDialog({ initialSettings, onApply, onClose, onPreview, onCancel, timezone, onTimezoneChange, templates, onSaveTemplate, onDeleteTemplate, defaultSettings }: Props): import("react/jsx-runtime").JSX.Element;
|
|
24
102
|
export {};
|
|
25
103
|
//# sourceMappingURL=ChartSettingsDialog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartSettingsDialog.d.ts","sourceRoot":"","sources":["../../../src/react/canvas/ChartSettingsDialog.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ChartSettingsDialog.d.ts","sourceRoot":"","sources":["../../../src/react/canvas/ChartSettingsDialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ContractSwitchDialog — popup shown when a user clicks a contract-switch marker.
|
|
3
|
+
*
|
|
4
|
+
* Displays the from/to contracts with a clean accent. Clicking either
|
|
5
|
+
* contract triggers `onSelectContract` so the parent can switch the symbol.
|
|
6
|
+
*/
|
|
7
|
+
import type { ContractSwitch } from '@forgecharts/types';
|
|
8
|
+
type Props = {
|
|
9
|
+
/** The contract switch the user clicked. */
|
|
10
|
+
sw: ContractSwitch;
|
|
11
|
+
/** Screen-space position for the popup. */
|
|
12
|
+
position: {
|
|
13
|
+
x: number;
|
|
14
|
+
y: number;
|
|
15
|
+
};
|
|
16
|
+
/** Called when the user picks a contract to navigate to. */
|
|
17
|
+
onSelectContract: (symbol: string) => void;
|
|
18
|
+
onClose: () => void;
|
|
19
|
+
};
|
|
20
|
+
export declare function ContractSwitchDialog({ sw, position, onSelectContract, onClose }: Props): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=ContractSwitchDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContractSwitchDialog.d.ts","sourceRoot":"","sources":["../../../src/react/canvas/ContractSwitchDialog.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,KAAK,KAAK,GAAG;IACX,4CAA4C;IAC5C,EAAE,EAAE,cAAc,CAAC;IACnB,2CAA2C;IAC3C,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,4DAA4D;IAC5D,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,KAAK,2CA4CtF"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Drawing } from '@forgecharts/types';
|
|
2
|
+
type DrawingPatches = Partial<Pick<Drawing, 'color' | 'lineWidth' | 'fillColor' | 'fillOpacity' | 'text' | 'fontSize' | 'deviationMultiplier' | 'visible' | 'points'>>;
|
|
3
|
+
type Props = {
|
|
4
|
+
drawing: Drawing;
|
|
5
|
+
/** Called when the user clicks Ok — commit the final patches. */
|
|
6
|
+
onApply: (patches: DrawingPatches) => void;
|
|
7
|
+
/**
|
|
8
|
+
* Called on every input change so the canvas updates in real time.
|
|
9
|
+
* The parent should call `chart.updateDrawing(id, patches)` without
|
|
10
|
+
* closing the dialog or triggering a workspace save.
|
|
11
|
+
*/
|
|
12
|
+
onPreview: (patches: DrawingPatches) => void;
|
|
13
|
+
/**
|
|
14
|
+
* Called when the user clicks Cancel or presses Escape.
|
|
15
|
+
* The parent should restore the original drawing state captured before
|
|
16
|
+
* the dialog was opened.
|
|
17
|
+
*/
|
|
18
|
+
onRevert: () => void;
|
|
19
|
+
onClose: () => void;
|
|
20
|
+
};
|
|
21
|
+
export declare function DrawingPropertiesDialog({ drawing, onApply, onPreview, onRevert, onClose }: Props): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=DrawingPropertiesDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DrawingPropertiesDialog.d.ts","sourceRoot":"","sources":["../../../src/react/canvas/DrawingPropertiesDialog.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,OAAO,EAAe,MAAM,oBAAoB,CAAC;AAI/D,KAAK,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EACtC,OAAO,GACP,WAAW,GACX,WAAW,GACX,aAAa,GACb,MAAM,GACN,UAAU,GACV,qBAAqB,GACrB,SAAS,GACT,QAAQ,CACX,CAAC,CAAC;AAEH,KAAK,KAAK,GAAG;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,iEAAiE;IACjE,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAC3C;;;;OAIG;IACH,SAAS,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C;;;;OAIG;IACH,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAgHF,wBAAgB,uBAAuB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,2CAqYhG"}
|