@forgecharts/sdk 1.3.10 → 1.3.11
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/react/index.js +19 -91
- package/dist/react/index.js.map +1 -1
- package/dist/react/internal.js +19 -91
- package/dist/react/internal.js.map +1 -1
- package/dist/react/shell/ScriptDrawer.d.ts.map +1 -1
- package/dist/react/shell/WatchlistDrawer.d.ts +13 -6
- package/dist/react/shell/WatchlistDrawer.d.ts.map +1 -1
- package/dist/react/shell/watchlistApi.d.ts +1 -2
- package/dist/react/shell/watchlistApi.d.ts.map +1 -1
- package/dist/react/workspace/ChartWorkspace.d.ts +9 -4
- package/dist/react/workspace/ChartWorkspace.d.ts.map +1 -1
- package/dist/server/__tests__/hostSchema.test.d.ts +2 -0
- package/dist/server/__tests__/hostSchema.test.d.ts.map +1 -0
- package/dist/server/hostSchema.d.ts +38 -0
- package/dist/server/hostSchema.d.ts.map +1 -0
- package/dist/server/index.d.ts +2 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +74 -1
- package/dist/server/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScriptDrawer.d.ts","sourceRoot":"","sources":["../../../src/react/shell/ScriptDrawer.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAmD,MAAM,OAAO,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"ScriptDrawer.d.ts","sourceRoot":"","sources":["../../../src/react/shell/ScriptDrawer.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAmD,MAAM,OAAO,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAqL1D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,cAAc,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IAClD,kFAAkF;IAClF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/C,CAAC;AAIF,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,iBAAiB,qBAglBhG"}
|
|
@@ -5,12 +5,19 @@ export type WatchlistDrawerProps = {
|
|
|
5
5
|
onSelectSymbol: (symbol: string) => void;
|
|
6
6
|
symbolResolver: ISymbolResolver;
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
9
|
-
* (
|
|
10
|
-
*
|
|
11
|
-
* ChartWorkspace's built-in watchlist in unmanaged deployments.
|
|
8
|
+
* Host API base for persistence — the drawer calls `${apiUrl}/api/watchlist`
|
|
9
|
+
* (see INTEGRATION.md §18 for the route + table contract). Omit for the
|
|
10
|
+
* managed same-origin default.
|
|
12
11
|
*/
|
|
13
|
-
|
|
12
|
+
apiUrl?: string;
|
|
13
|
+
/** Bearer-token resolver for the persistence calls. */
|
|
14
|
+
getAuthToken?: () => string | Promise<string>;
|
|
15
|
+
/**
|
|
16
|
+
* Live quote feed over the ForgeCharts runtime WebSocket. Default true
|
|
17
|
+
* (managed). Unmanaged deployments pass false until a host quote contract
|
|
18
|
+
* exists — rows render without prices instead of hammering a dead socket.
|
|
19
|
+
*/
|
|
20
|
+
liveQuotes?: boolean;
|
|
14
21
|
};
|
|
15
|
-
export declare function WatchlistDrawer({ onClose, onSelectSymbol, symbolResolver,
|
|
22
|
+
export declare function WatchlistDrawer({ onClose, onSelectSymbol, symbolResolver, apiUrl, getAuthToken, liveQuotes }: WatchlistDrawerProps): React.JSX.Element;
|
|
16
23
|
//# sourceMappingURL=WatchlistDrawer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WatchlistDrawer.d.ts","sourceRoot":"","sources":["../../../src/react/shell/WatchlistDrawer.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAc1D,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,cAAc,EAAE,eAAe,CAAC;IAChC
|
|
1
|
+
{"version":3,"file":"WatchlistDrawer.d.ts","sourceRoot":"","sources":["../../../src/react/shell/WatchlistDrawer.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAc1D,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,cAAc,EAAE,eAAe,CAAC;IAChC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAyIF,wBAAgB,eAAe,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,UAAiB,EAAE,EAAE,oBAAoB,qBAyhBzI"}
|
|
@@ -35,7 +35,6 @@ export declare const watchlistApi: {
|
|
|
35
35
|
removeGroup(id: string): Promise<void>;
|
|
36
36
|
reorderItems(ids: string[]): Promise<void>;
|
|
37
37
|
};
|
|
38
|
-
/** The subset of watchlistApi the WatchlistDrawer consumes —
|
|
38
|
+
/** The subset of watchlistApi the WatchlistDrawer consumes — the host backend must implement these routes (INTEGRATION.md §18). */
|
|
39
39
|
export type WatchlistApiLike = Pick<typeof watchlistApi, 'getAll' | 'addItem' | 'removeItem' | 'moveItemToGroup' | 'addGroup' | 'removeGroup' | 'reorderItems'>;
|
|
40
|
-
export declare const localWatchlistApi: WatchlistApiLike;
|
|
41
40
|
//# sourceMappingURL=watchlistApi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watchlistApi.d.ts","sourceRoot":"","sources":["../../../src/react/shell/watchlistApi.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAmCH,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,YAAY;mBACR;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;oBAMlF,MAAM,GAAG,IAAI;cAEnB,OAAO,CAAC,aAAa,CAAC;oBAIhB,MAAM,aAAa,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;mBAInD,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;wBAIjB,MAAM,YAAY,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC;mBAI7D,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;oBAI/B,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;sBAIpB,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAG3C,CAAC;AAEF,
|
|
1
|
+
{"version":3,"file":"watchlistApi.d.ts","sourceRoot":"","sources":["../../../src/react/shell/watchlistApi.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAmCH,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,YAAY;mBACR;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;oBAMlF,MAAM,GAAG,IAAI;cAEnB,OAAO,CAAC,aAAa,CAAC;oBAIhB,MAAM,aAAa,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;mBAInD,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;wBAIjB,MAAM,YAAY,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC;mBAI7D,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;oBAI/B,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;sBAIpB,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAG3C,CAAC;AAEF,mIAAmI;AACnI,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,OAAO,YAAY,EACnB,QAAQ,GAAG,SAAS,GAAG,YAAY,GAAG,iBAAiB,GAAG,UAAU,GAAG,aAAa,GAAG,cAAc,CACtG,CAAC"}
|
|
@@ -132,10 +132,15 @@ export type ChartWorkspaceProps = {
|
|
|
132
132
|
*/
|
|
133
133
|
builtinScriptDrawer?: boolean;
|
|
134
134
|
/**
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
*
|
|
135
|
+
* Host backend base URL for built-in drawer persistence — the workspace
|
|
136
|
+
* calls `${hostApiUrl}/api/scripts` and `${hostApiUrl}/api/watchlist`.
|
|
137
|
+
* REQUIRED for saved scripts and watchlists to persist: the SDK never
|
|
138
|
+
* stores feature data in localStorage; hosts implement these routes and
|
|
139
|
+
* create the backing tables per INTEGRATION.md §18 (the SDK ships the
|
|
140
|
+
* schema via `ensureForgeChartsTables` in `@forgecharts/sdk/server`).
|
|
138
141
|
*/
|
|
142
|
+
hostApiUrl?: string;
|
|
143
|
+
/** @deprecated Use `hostApiUrl`. */
|
|
139
144
|
scriptApiUrl?: string;
|
|
140
145
|
showTradeButton?: boolean;
|
|
141
146
|
tradeDrawerOpen?: boolean;
|
|
@@ -191,5 +196,5 @@ export type ChartWorkspaceProps = {
|
|
|
191
196
|
tradingOverlayStore?: TradingOverlayStore;
|
|
192
197
|
};
|
|
193
198
|
export type { TabItem };
|
|
194
|
-
export declare function ChartWorkspace({ tabs, activeTabId, onSelectTab, onAddTab, onCloseTab, onRenameTab, symbol, timeframe, theme, customTimeframes, favoriteTfs, onSymbolChange, onTimeframeChange, onAddCustomTimeframe, onRemoveCustomTimeframe, onFavoriteTfsChange, onAddIndicator, maxIndicators, indicatorsOpen, onToggleIndicators, onToggleTheme, onCopyScreenshot, onDownloadScreenshot, onFullscreen, isFullscreen, currentLayoutName, currentLayoutId, autoSave, onFetchLayouts, onSaveLayout, onLoadLayout, onRenameLayout, onCopyLayout, onToggleAutoSave, onDeleteLayout, onOpenLayoutInNewTab, showTradeButton, tradeDrawerOpen, onToggleTradeDrawer, symbolResolver, rollRule, onRollRuleChange, extraTfGroups, watchlistOpen, onToggleWatchlist, builtinWatchlistDrawer, orderEntryOpen, onToggleOrderEntry, showOrderEntry, showAgent, agentOpen, onToggleAgent, domOpen, onToggleDOM, showDrawingTools, showIndicators, showForgeScript, showWatchlist, showSavedLayouts, showCustomTimeframes, showDataExport, showMultiChartLayout, showMultipleTabs, activeSymbol, timezone, onTimezoneChange, session, onSessionChange, scriptDrawerOpen, onToggleScriptDrawer, builtinScriptDrawer, scriptApiUrl, tradingPanel, tradingPanelOpen, onToggleTradingPanel, tradingPanelRefreshTick, rithmicConnected, gridTemplate, gridSyncOptions, onGridTemplateChange, onGridSyncChange, onExitGridMode, chartSlots, isLicensed, wsLoaded, leftDrawers, drawers, getAuthToken, tradingBridge, tradingOverlayStore, }: ChartWorkspaceProps): React.JSX.Element;
|
|
199
|
+
export declare function ChartWorkspace({ tabs, activeTabId, onSelectTab, onAddTab, onCloseTab, onRenameTab, symbol, timeframe, theme, customTimeframes, favoriteTfs, onSymbolChange, onTimeframeChange, onAddCustomTimeframe, onRemoveCustomTimeframe, onFavoriteTfsChange, onAddIndicator, maxIndicators, indicatorsOpen, onToggleIndicators, onToggleTheme, onCopyScreenshot, onDownloadScreenshot, onFullscreen, isFullscreen, currentLayoutName, currentLayoutId, autoSave, onFetchLayouts, onSaveLayout, onLoadLayout, onRenameLayout, onCopyLayout, onToggleAutoSave, onDeleteLayout, onOpenLayoutInNewTab, showTradeButton, tradeDrawerOpen, onToggleTradeDrawer, symbolResolver, rollRule, onRollRuleChange, extraTfGroups, watchlistOpen, onToggleWatchlist, builtinWatchlistDrawer, orderEntryOpen, onToggleOrderEntry, showOrderEntry, showAgent, agentOpen, onToggleAgent, domOpen, onToggleDOM, showDrawingTools, showIndicators, showForgeScript, showWatchlist, showSavedLayouts, showCustomTimeframes, showDataExport, showMultiChartLayout, showMultipleTabs, activeSymbol, timezone, onTimezoneChange, session, onSessionChange, scriptDrawerOpen, onToggleScriptDrawer, builtinScriptDrawer, hostApiUrl, scriptApiUrl, tradingPanel, tradingPanelOpen, onToggleTradingPanel, tradingPanelRefreshTick, rithmicConnected, gridTemplate, gridSyncOptions, onGridTemplateChange, onGridSyncChange, onExitGridMode, chartSlots, isLicensed, wsLoaded, leftDrawers, drawers, getAuthToken, tradingBridge, tradingOverlayStore, }: ChartWorkspaceProps): React.JSX.Element;
|
|
195
200
|
//# sourceMappingURL=ChartWorkspace.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChartWorkspace.d.ts","sourceRoot":"","sources":["../../../src/react/workspace/ChartWorkspace.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ChartWorkspace.d.ts","sourceRoot":"","sources":["../../../src/react/workspace/ChartWorkspace.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hostSchema.test.d.ts","sourceRoot":"","sources":["../../../src/server/__tests__/hostSchema.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Host persistence schema — the database tables an unmanaged deployment
|
|
3
|
+
* must provide for the chart's persisted features (INTEGRATION.md §18).
|
|
4
|
+
*
|
|
5
|
+
* The SDK is a browser package and never touches a database or
|
|
6
|
+
* localStorage; the HOST backend owns persistence. This module ships the
|
|
7
|
+
* canonical DDL so integrators create exactly the tables the documented
|
|
8
|
+
* API route contracts expect:
|
|
9
|
+
*
|
|
10
|
+
* fc_watchlist_groups / fc_watchlist_items → /api/watchlist/*
|
|
11
|
+
* fc_scripts / fc_script_versions → /api/scripts/*
|
|
12
|
+
* fc_chart_layouts → layout handler props
|
|
13
|
+
* fc_chart_preferences → preferences (optional)
|
|
14
|
+
* fc_agent_messages → /api/agent/history
|
|
15
|
+
*
|
|
16
|
+
* All statements are idempotent (CREATE TABLE IF NOT EXISTS) — safe to run
|
|
17
|
+
* on every backend boot via `ensureForgeChartsTables`.
|
|
18
|
+
*
|
|
19
|
+
* `user_id` is VARCHAR(64) so any host user-id scheme (int, uuid) fits;
|
|
20
|
+
* scope every query by your authenticated user.
|
|
21
|
+
*/
|
|
22
|
+
export type HostSchemaDialect = 'mysql' | 'postgres';
|
|
23
|
+
/** Returns the CREATE TABLE statements for the host persistence schema. */
|
|
24
|
+
export declare function getHostSchemaStatements(dialect?: HostSchemaDialect): string[];
|
|
25
|
+
/**
|
|
26
|
+
* Creates the host persistence tables in the customer's database. Driver
|
|
27
|
+
* agnostic — pass any async `query(sql)` executor (mysql2, pg, knex.raw, …).
|
|
28
|
+
* Idempotent: call it on every backend boot, after your own migrations.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* import { ensureForgeChartsTables } from '@forgecharts/sdk/server';
|
|
32
|
+
* await ensureForgeChartsTables({ query: (sql) => pool.query(sql), dialect: 'mysql' });
|
|
33
|
+
*/
|
|
34
|
+
export declare function ensureForgeChartsTables(opts: {
|
|
35
|
+
query: (sql: string) => Promise<unknown>;
|
|
36
|
+
dialect?: HostSchemaDialect;
|
|
37
|
+
}): Promise<void>;
|
|
38
|
+
//# sourceMappingURL=hostSchema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hostSchema.d.ts","sourceRoot":"","sources":["../../src/server/hostSchema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,UAAU,CAAC;AAErD,2EAA2E;AAC3E,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,iBAA2B,GAAG,MAAM,EAAE,CAyEtF;AAED;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE;IAClD,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B,GAAG,OAAO,CAAC,IAAI,CAAC,CAIhB"}
|
package/dist/server/index.d.ts
CHANGED
|
@@ -19,4 +19,6 @@
|
|
|
19
19
|
export { getAgentTools } from './tools';
|
|
20
20
|
export { buildSystemPrompt } from './systemPrompt';
|
|
21
21
|
export { FORGESCRIPT_REFERENCE } from './knowledge';
|
|
22
|
+
export { ensureForgeChartsTables, getHostSchemaStatements } from './hostSchema';
|
|
23
|
+
export type { HostSchemaDialect } from './hostSchema';
|
|
22
24
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAChF,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/server/index.js
CHANGED
|
@@ -1046,6 +1046,79 @@ ${drawingList}
|
|
|
1046
1046
|
`;
|
|
1047
1047
|
}
|
|
1048
1048
|
|
|
1049
|
-
|
|
1049
|
+
// src/server/hostSchema.ts
|
|
1050
|
+
function getHostSchemaStatements(dialect = "mysql") {
|
|
1051
|
+
const pk = dialect === "mysql" ? "id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY" : "id SERIAL PRIMARY KEY";
|
|
1052
|
+
const json = dialect === "mysql" ? "JSON" : "JSONB";
|
|
1053
|
+
const now = "CURRENT_TIMESTAMP";
|
|
1054
|
+
const updatedAt = dialect === "mysql" ? `updated_at TIMESTAMP NOT NULL DEFAULT ${now} ON UPDATE ${now}` : `updated_at TIMESTAMP NOT NULL DEFAULT ${now}`;
|
|
1055
|
+
return [
|
|
1056
|
+
// ── Watchlist ─────────────────────────────────────────────────────────
|
|
1057
|
+
`CREATE TABLE IF NOT EXISTS fc_watchlist_groups (
|
|
1058
|
+
${pk},
|
|
1059
|
+
user_id VARCHAR(64) NOT NULL,
|
|
1060
|
+
name VARCHAR(128) NOT NULL,
|
|
1061
|
+
position INT NOT NULL DEFAULT 0,
|
|
1062
|
+
created_at TIMESTAMP NOT NULL DEFAULT ${now}
|
|
1063
|
+
)`,
|
|
1064
|
+
`CREATE TABLE IF NOT EXISTS fc_watchlist_items (
|
|
1065
|
+
${pk},
|
|
1066
|
+
user_id VARCHAR(64) NOT NULL,
|
|
1067
|
+
group_id INT NULL,
|
|
1068
|
+
symbol VARCHAR(64) NOT NULL,
|
|
1069
|
+
position INT NOT NULL DEFAULT 0,
|
|
1070
|
+
created_at TIMESTAMP NOT NULL DEFAULT ${now}
|
|
1071
|
+
)`,
|
|
1072
|
+
// ── ForgeScript scripts (versioned source) ────────────────────────────
|
|
1073
|
+
`CREATE TABLE IF NOT EXISTS fc_scripts (
|
|
1074
|
+
${pk},
|
|
1075
|
+
user_id VARCHAR(64) NOT NULL,
|
|
1076
|
+
name VARCHAR(128) NOT NULL,
|
|
1077
|
+
language VARCHAR(32) NOT NULL DEFAULT 'forgescript',
|
|
1078
|
+
created_at TIMESTAMP NOT NULL DEFAULT ${now},
|
|
1079
|
+
${updatedAt}
|
|
1080
|
+
)`,
|
|
1081
|
+
`CREATE TABLE IF NOT EXISTS fc_script_versions (
|
|
1082
|
+
${pk},
|
|
1083
|
+
script_id INT NOT NULL,
|
|
1084
|
+
version INT NOT NULL,
|
|
1085
|
+
source MEDIUMTEXT NOT NULL,
|
|
1086
|
+
created_at TIMESTAMP NOT NULL DEFAULT ${now}
|
|
1087
|
+
)`.replace("MEDIUMTEXT", dialect === "mysql" ? "MEDIUMTEXT" : "TEXT"),
|
|
1088
|
+
// ── Chart layouts + preferences ───────────────────────────────────────
|
|
1089
|
+
`CREATE TABLE IF NOT EXISTS fc_chart_layouts (
|
|
1090
|
+
${pk},
|
|
1091
|
+
user_id VARCHAR(64) NOT NULL,
|
|
1092
|
+
name VARCHAR(128) NOT NULL,
|
|
1093
|
+
symbol VARCHAR(64) NULL,
|
|
1094
|
+
timeframe VARCHAR(16) NULL,
|
|
1095
|
+
config ${json} NOT NULL,
|
|
1096
|
+
created_at TIMESTAMP NOT NULL DEFAULT ${now},
|
|
1097
|
+
${updatedAt}
|
|
1098
|
+
)`,
|
|
1099
|
+
`CREATE TABLE IF NOT EXISTS fc_chart_preferences (
|
|
1100
|
+
user_id VARCHAR(64) NOT NULL PRIMARY KEY,
|
|
1101
|
+
data ${json} NOT NULL,
|
|
1102
|
+
${updatedAt}
|
|
1103
|
+
)`,
|
|
1104
|
+
// ── AI Assistant conversation history ─────────────────────────────────
|
|
1105
|
+
`CREATE TABLE IF NOT EXISTS fc_agent_messages (
|
|
1106
|
+
${pk},
|
|
1107
|
+
user_id VARCHAR(64) NOT NULL,
|
|
1108
|
+
client_msg_id VARCHAR(64) NOT NULL,
|
|
1109
|
+
role VARCHAR(16) NOT NULL,
|
|
1110
|
+
content MEDIUMTEXT NOT NULL,
|
|
1111
|
+
tool_calls ${json} NULL,
|
|
1112
|
+
created_at TIMESTAMP NOT NULL DEFAULT ${now}
|
|
1113
|
+
)`.replace("MEDIUMTEXT", dialect === "mysql" ? "MEDIUMTEXT" : "TEXT")
|
|
1114
|
+
].map((s) => s.replace(/\s+/g, " ").trim());
|
|
1115
|
+
}
|
|
1116
|
+
async function ensureForgeChartsTables(opts) {
|
|
1117
|
+
for (const stmt of getHostSchemaStatements(opts.dialect ?? "mysql")) {
|
|
1118
|
+
await opts.query(stmt);
|
|
1119
|
+
}
|
|
1120
|
+
}
|
|
1121
|
+
|
|
1122
|
+
export { FORGESCRIPT_REFERENCE, buildSystemPrompt, ensureForgeChartsTables, getAgentTools, getHostSchemaStatements };
|
|
1050
1123
|
//# sourceMappingURL=index.js.map
|
|
1051
1124
|
//# sourceMappingURL=index.js.map
|