opencandle 0.11.0 → 0.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/README.md +5 -4
  2. package/dist/analysts/orchestrator.d.ts +2 -0
  3. package/dist/analysts/orchestrator.js +19 -0
  4. package/dist/analysts/orchestrator.js.map +1 -1
  5. package/dist/doctor/report.js +1 -1
  6. package/dist/doctor/report.js.map +1 -1
  7. package/dist/infra/cache.d.ts +6 -0
  8. package/dist/infra/cache.js +16 -6
  9. package/dist/infra/cache.js.map +1 -1
  10. package/dist/infra/freshness.d.ts +21 -0
  11. package/dist/infra/freshness.js +119 -0
  12. package/dist/infra/freshness.js.map +1 -0
  13. package/dist/infra/market-calendar.d.ts +14 -0
  14. package/dist/infra/market-calendar.js +137 -0
  15. package/dist/infra/market-calendar.js.map +1 -0
  16. package/dist/infra/rate-limiter.js +1 -0
  17. package/dist/infra/rate-limiter.js.map +1 -1
  18. package/dist/market-state/summaries.d.ts +8 -0
  19. package/dist/market-state/summaries.js +70 -0
  20. package/dist/market-state/summaries.js.map +1 -0
  21. package/dist/onboarding/providers.d.ts +25 -1
  22. package/dist/onboarding/providers.js +26 -0
  23. package/dist/onboarding/providers.js.map +1 -1
  24. package/dist/pi/opencandle-extension.js +44 -5
  25. package/dist/pi/opencandle-extension.js.map +1 -1
  26. package/dist/providers/alpha-vantage.js +6 -0
  27. package/dist/providers/alpha-vantage.js.map +1 -1
  28. package/dist/providers/coingecko.js +1 -0
  29. package/dist/providers/coingecko.js.map +1 -1
  30. package/dist/providers/polymarket.d.ts +2 -0
  31. package/dist/providers/polymarket.js +163 -0
  32. package/dist/providers/polymarket.js.map +1 -0
  33. package/dist/providers/wrap-provider.js +5 -3
  34. package/dist/providers/wrap-provider.js.map +1 -1
  35. package/dist/providers/yahoo-finance.d.ts +3 -0
  36. package/dist/providers/yahoo-finance.js +206 -10
  37. package/dist/providers/yahoo-finance.js.map +1 -1
  38. package/dist/routing/entity-extractor.js +16 -0
  39. package/dist/routing/entity-extractor.js.map +1 -1
  40. package/dist/routing/route-manifest.js +1 -1
  41. package/dist/routing/route-manifest.js.map +1 -1
  42. package/dist/routing/router-llm-client.js +18 -3
  43. package/dist/routing/router-llm-client.js.map +1 -1
  44. package/dist/routing/router.d.ts +1 -1
  45. package/dist/routing/router.js +274 -5
  46. package/dist/routing/router.js.map +1 -1
  47. package/dist/routing/slot-resolver.d.ts +1 -0
  48. package/dist/routing/slot-resolver.js +1 -1
  49. package/dist/routing/slot-resolver.js.map +1 -1
  50. package/dist/runtime/evidence.d.ts +1 -0
  51. package/dist/runtime/evidence.js.map +1 -1
  52. package/dist/runtime/numeric-claims.d.ts +23 -0
  53. package/dist/runtime/numeric-claims.js +100 -0
  54. package/dist/runtime/numeric-claims.js.map +1 -0
  55. package/dist/runtime/planning-evidence.js +1 -76
  56. package/dist/runtime/planning-evidence.js.map +1 -1
  57. package/dist/runtime/prompt-step.d.ts +10 -1
  58. package/dist/runtime/prompt-step.js +116 -2
  59. package/dist/runtime/prompt-step.js.map +1 -1
  60. package/dist/runtime/session-coordinator.d.ts +11 -1
  61. package/dist/runtime/session-coordinator.js +352 -49
  62. package/dist/runtime/session-coordinator.js.map +1 -1
  63. package/dist/runtime/validation.d.ts +3 -1
  64. package/dist/runtime/workflow-events.d.ts +1 -1
  65. package/dist/runtime/workflow-events.js.map +1 -1
  66. package/dist/runtime/workflow-types.d.ts +3 -0
  67. package/dist/runtime/workflow-types.js.map +1 -1
  68. package/dist/tools/fundamentals/comps.d.ts +1 -0
  69. package/dist/tools/fundamentals/comps.js +20 -9
  70. package/dist/tools/fundamentals/comps.js.map +1 -1
  71. package/dist/tools/fundamentals/dcf.js +183 -112
  72. package/dist/tools/fundamentals/dcf.js.map +1 -1
  73. package/dist/tools/index.d.ts +1 -0
  74. package/dist/tools/index.js +3 -0
  75. package/dist/tools/index.js.map +1 -1
  76. package/dist/tools/macro/event-probabilities.d.ts +8 -0
  77. package/dist/tools/macro/event-probabilities.js +121 -0
  78. package/dist/tools/macro/event-probabilities.js.map +1 -0
  79. package/dist/tools/market/crypto-price.d.ts +4 -1
  80. package/dist/tools/market/crypto-price.js +10 -1
  81. package/dist/tools/market/crypto-price.js.map +1 -1
  82. package/dist/tools/market/screen-stocks.js +14 -3
  83. package/dist/tools/market/screen-stocks.js.map +1 -1
  84. package/dist/tools/market/stock-quote.d.ts +4 -1
  85. package/dist/tools/market/stock-quote.js +9 -4
  86. package/dist/tools/market/stock-quote.js.map +1 -1
  87. package/dist/tools/options/option-chain.d.ts +4 -1
  88. package/dist/tools/options/option-chain.js +12 -1
  89. package/dist/tools/options/option-chain.js.map +1 -1
  90. package/dist/tools/portfolio/risk-analysis.js +1 -1
  91. package/dist/tools/portfolio/risk-analysis.js.map +1 -1
  92. package/dist/tools/technical/indicators.js +1 -1
  93. package/dist/tools/technical/indicators.js.map +1 -1
  94. package/dist/types/fundamentals.d.ts +1 -0
  95. package/dist/types/index.d.ts +1 -0
  96. package/dist/types/market.d.ts +2 -0
  97. package/dist/types/options.d.ts +1 -0
  98. package/dist/types/prediction-markets.d.ts +13 -0
  99. package/dist/types/prediction-markets.js +2 -0
  100. package/dist/types/prediction-markets.js.map +1 -0
  101. package/gui/server/chat-event-adapter.ts +89 -5
  102. package/gui/server/http-routes.ts +285 -37
  103. package/gui/server/invoke-tool.ts +14 -13
  104. package/gui/server/live-chat-event-adapter.ts +37 -2
  105. package/gui/server/market-state-api.ts +63 -5
  106. package/gui/server/projector.ts +132 -3
  107. package/gui/server/session-actions.ts +32 -40
  108. package/gui/server/session-entry-wait.ts +22 -3
  109. package/gui/server/ws-hub.ts +16 -4
  110. package/gui/shared/chat-events.ts +10 -1
  111. package/gui/shared/event-reducer.ts +1 -0
  112. package/gui/web/dist/assets/CatalogOverlay-DZ1niyQm.js +1 -0
  113. package/gui/web/dist/assets/index-D4F9AJnn.css +2 -0
  114. package/gui/web/dist/assets/index-DtqMMBTr.js +65 -0
  115. package/gui/web/dist/index.html +2 -2
  116. package/package.json +8 -13
  117. package/src/analysts/orchestrator.ts +20 -0
  118. package/src/doctor/report.ts +1 -1
  119. package/src/infra/cache.ts +24 -11
  120. package/src/infra/freshness.ts +165 -0
  121. package/src/infra/market-calendar.ts +193 -0
  122. package/src/infra/rate-limiter.ts +1 -0
  123. package/src/market-state/summaries.ts +75 -0
  124. package/src/onboarding/providers.ts +29 -1
  125. package/src/pi/opencandle-extension.ts +55 -5
  126. package/src/providers/alpha-vantage.ts +6 -0
  127. package/src/providers/coingecko.ts +2 -0
  128. package/src/providers/polymarket.ts +214 -0
  129. package/src/providers/wrap-provider.ts +5 -3
  130. package/src/providers/yahoo-finance.ts +339 -27
  131. package/src/routing/entity-extractor.ts +17 -0
  132. package/src/routing/route-manifest.ts +1 -1
  133. package/src/routing/router-llm-client.ts +31 -19
  134. package/src/routing/router.ts +340 -5
  135. package/src/routing/slot-resolver.ts +1 -1
  136. package/src/runtime/evidence.ts +1 -0
  137. package/src/runtime/numeric-claims.ts +108 -0
  138. package/src/runtime/planning-evidence.ts +6 -91
  139. package/src/runtime/prompt-step.ts +127 -2
  140. package/src/runtime/session-coordinator.ts +462 -57
  141. package/src/runtime/validation.ts +1 -1
  142. package/src/runtime/workflow-events.ts +2 -0
  143. package/src/runtime/workflow-types.ts +3 -0
  144. package/src/tools/fundamentals/comps.ts +25 -14
  145. package/src/tools/fundamentals/dcf.ts +204 -124
  146. package/src/tools/index.ts +3 -0
  147. package/src/tools/macro/event-probabilities.ts +141 -0
  148. package/src/tools/market/crypto-price.ts +14 -2
  149. package/src/tools/market/screen-stocks.ts +14 -3
  150. package/src/tools/market/stock-quote.ts +49 -43
  151. package/src/tools/options/option-chain.ts +16 -2
  152. package/src/tools/portfolio/risk-analysis.ts +1 -1
  153. package/src/tools/technical/indicators.ts +1 -1
  154. package/src/types/fundamentals.ts +1 -0
  155. package/src/types/index.ts +1 -0
  156. package/src/types/market.ts +2 -0
  157. package/src/types/options.ts +1 -0
  158. package/src/types/prediction-markets.ts +13 -0
  159. package/gui/server/chat-run-session.ts +0 -16
  160. package/gui/web/dist/assets/CatalogOverlay-ChRTKNlf.js +0 -1
  161. package/gui/web/dist/assets/index-BzyqyVnd.css +0 -2
  162. package/gui/web/dist/assets/index-DvMjkOP9.js +0 -65
@@ -0,0 +1,163 @@
1
+ import { cache, STALE_LIMIT, TTL } from "../infra/cache.js";
2
+ import { httpGet } from "../infra/http-client.js";
3
+ import { rateLimiter } from "../infra/rate-limiter.js";
4
+ const BASE_URL = "https://gamma-api.polymarket.com";
5
+ const POLYMARKET_URL = "https://polymarket.com";
6
+ export async function searchPredictionMarkets(query, limit = 8) {
7
+ const normalizedQuery = query.trim();
8
+ const normalizedLimit = normalizeLimit(limit);
9
+ if (!normalizedQuery)
10
+ return [];
11
+ const cacheKey = `polymarket:search:${normalizedQuery.toLowerCase()}:${normalizedLimit}`;
12
+ const cached = cache.get(cacheKey);
13
+ if (cached)
14
+ return cached;
15
+ try {
16
+ await rateLimiter.acquire("polymarket");
17
+ const url = `${BASE_URL}/public-search?q=${encodeURIComponent(normalizedQuery)}&limit=${normalizedLimit}`;
18
+ const response = await httpGet(url, {
19
+ headers: { Accept: "application/json" },
20
+ maxRetries: 0,
21
+ });
22
+ const quotes = decodeSearchResponse(response).slice(0, normalizedLimit);
23
+ cache.set(cacheKey, quotes, TTL.PREDICTION_MARKETS);
24
+ return quotes;
25
+ }
26
+ catch (error) {
27
+ const stale = cache.getStale(cacheKey, STALE_LIMIT.PREDICTION_MARKETS);
28
+ if (stale)
29
+ return stale.value;
30
+ throw error;
31
+ }
32
+ }
33
+ function decodeSearchResponse(response) {
34
+ const markets = [
35
+ ...(response.events ?? []).flatMap((event) => (event.markets ?? []).map((market) => ({ event, market }))),
36
+ ...(response.markets ?? []).map((market) => ({ market })),
37
+ ];
38
+ return markets.flatMap(({ event, market }) => isOpenMarket(market) ? marketToQuotes(market, event) : []);
39
+ }
40
+ function marketToQuotes(market, event) {
41
+ const marketId = market.id === undefined ? undefined : String(market.id);
42
+ const title = stringValue(market.question) ?? stringValue(event?.title);
43
+ if (!marketId || !title)
44
+ return [];
45
+ const outcomes = parseStringArray(market.outcomes);
46
+ const prices = parseNumberArray(market.outcomePrices);
47
+ if (outcomes.length === 0 || prices.length === 0)
48
+ return [];
49
+ const resolutionCriteria = firstNonEmpty(market.description, market.resolutionSource);
50
+ const volumeUsd = numberValue(market.volumeNum) ?? numberValue(market.volume) ?? numberValue(event?.volume);
51
+ const liquidityUsd = numberValue(market.liquidityNum) ??
52
+ numberValue(market.liquidity) ??
53
+ numberValue(event?.liquidity);
54
+ const closeDate = stringValue(market.endDate) ?? normalizeDateOnly(market.endDateIso ?? event?.endDate);
55
+ const url = marketUrl(market, event);
56
+ const asOf = stringValue(market.updatedAt) ?? stringValue(event?.updatedAt);
57
+ return outcomes.flatMap((outcome, index) => {
58
+ const probability = prices[index];
59
+ if (probability === undefined || probability < 0 || probability > 1)
60
+ return [];
61
+ return [
62
+ {
63
+ source: "polymarket",
64
+ marketId,
65
+ title,
66
+ outcome,
67
+ probability,
68
+ ...(volumeUsd !== undefined && { volumeUsd }),
69
+ ...(liquidityUsd !== undefined && { liquidityUsd }),
70
+ ...(closeDate && { closeDate }),
71
+ ...(resolutionCriteria && { resolutionCriteria }),
72
+ url,
73
+ ...(asOf && { asOf }),
74
+ },
75
+ ];
76
+ });
77
+ }
78
+ function isOpenMarket(market) {
79
+ if (booleanValue(market.closed) === true)
80
+ return false;
81
+ if (booleanValue(market.active) === false)
82
+ return false;
83
+ const endDate = stringValue(market.endDate) ?? stringValue(market.endDateIso);
84
+ if (!endDate)
85
+ return true;
86
+ const parsed = new Date(endDate);
87
+ return Number.isNaN(parsed.getTime()) || parsed.getTime() > Date.now();
88
+ }
89
+ function normalizeLimit(limit) {
90
+ if (!Number.isFinite(limit))
91
+ return 8;
92
+ return Math.min(50, Math.max(1, Math.floor(limit)));
93
+ }
94
+ function parseStringArray(value) {
95
+ const parsed = parseJsonArray(value);
96
+ return parsed.flatMap((item) => {
97
+ const text = stringValue(item);
98
+ return text ? [text] : [];
99
+ });
100
+ }
101
+ function parseNumberArray(value) {
102
+ const parsed = parseJsonArray(value);
103
+ return parsed.map((item) => numberValue(item));
104
+ }
105
+ function parseJsonArray(value) {
106
+ if (Array.isArray(value))
107
+ return value;
108
+ if (typeof value !== "string")
109
+ return [];
110
+ try {
111
+ const parsed = JSON.parse(value);
112
+ return Array.isArray(parsed) ? parsed : [];
113
+ }
114
+ catch {
115
+ return [];
116
+ }
117
+ }
118
+ function numberValue(value) {
119
+ const number = typeof value === "number" ? value : typeof value === "string" ? Number(value) : NaN;
120
+ return Number.isFinite(number) ? number : undefined;
121
+ }
122
+ function stringValue(value) {
123
+ if (typeof value !== "string")
124
+ return undefined;
125
+ const trimmed = value.trim();
126
+ return trimmed.length > 0 ? trimmed : undefined;
127
+ }
128
+ function booleanValue(value) {
129
+ if (typeof value === "boolean")
130
+ return value;
131
+ if (typeof value !== "string")
132
+ return undefined;
133
+ const normalized = value.trim().toLowerCase();
134
+ if (normalized === "true")
135
+ return true;
136
+ if (normalized === "false")
137
+ return false;
138
+ return undefined;
139
+ }
140
+ function firstNonEmpty(...values) {
141
+ for (const value of values) {
142
+ const text = stringValue(value);
143
+ if (text)
144
+ return text;
145
+ }
146
+ return undefined;
147
+ }
148
+ function normalizeDateOnly(value) {
149
+ if (!value)
150
+ return undefined;
151
+ return /^\d{4}-\d{2}-\d{2}$/.test(value) ? `${value}T00:00:00Z` : value;
152
+ }
153
+ function marketUrl(market, event) {
154
+ const marketSlug = stringValue(market.slug);
155
+ const eventSlug = stringValue(event?.slug);
156
+ if (eventSlug && marketSlug) {
157
+ return `${POLYMARKET_URL}/event/${encodeURIComponent(eventSlug)}/${encodeURIComponent(marketSlug)}`;
158
+ }
159
+ if (marketSlug)
160
+ return `${POLYMARKET_URL}/event/${encodeURIComponent(marketSlug)}`;
161
+ return POLYMARKET_URL;
162
+ }
163
+ //# sourceMappingURL=polymarket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polymarket.js","sourceRoot":"","sources":["../../src/providers/polymarket.ts"],"names":[],"mappings":"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"}
@@ -30,12 +30,14 @@ export async function wrapProvider(providerId, fn) {
30
30
  };
31
31
  }
32
32
  try {
33
- const { value: data, stale } = await runWithStaleMetadata(fn);
33
+ const { value: data, cache } = await runWithStaleMetadata(fn);
34
+ const timestamp = cache ? new Date(cache.cachedAt).toISOString() : new Date().toISOString();
34
35
  return {
35
36
  status: "ok",
36
37
  data,
37
- timestamp: stale ? new Date(stale.cachedAt).toISOString() : new Date().toISOString(),
38
- stale: stale ? true : undefined,
38
+ timestamp,
39
+ cached: cache?.status === "cached" ? true : undefined,
40
+ stale: cache?.status === "stale" ? true : undefined,
39
41
  };
40
42
  }
41
43
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"wrap-provider.js","sourceRoot":"","sources":["../../src/providers/wrap-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wrap-provider.js","sourceRoot":"","sources":["../../src/providers/wrap-provider.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
+ import type { CompanyOverview, FinancialStatement } from "../types/fundamentals.js";
1
2
  import type { OHLCV, StockQuote } from "../types/market.js";
2
3
  import type { OptionsChain } from "../types/options.js";
3
4
  import type { FundHoldings } from "../types/portfolio.js";
5
+ export declare function getYahooCompanyOverview(symbol: string): Promise<CompanyOverview>;
4
6
  export declare function getQuote(symbol: string): Promise<StockQuote>;
7
+ export declare function getYahooFinancials(symbol: string): Promise<FinancialStatement[]>;
5
8
  export declare function getHistory(symbol: string, range?: string, interval?: string): Promise<OHLCV[]>;
6
9
  export declare function getFundHoldings(symbol: string): Promise<FundHoldings>;
7
10
  export declare function clearCrumbCache(): void;
@@ -14,6 +14,50 @@ function getYahooFinance2Client() {
14
14
  });
15
15
  return yahooFinance2Client;
16
16
  }
17
+ export async function getYahooCompanyOverview(symbol) {
18
+ const normalizedSymbol = symbol.toUpperCase();
19
+ const cacheKey = `yahoo:overview:${normalizedSymbol}`;
20
+ const cached = cache.get(cacheKey);
21
+ if (cached)
22
+ return cached;
23
+ try {
24
+ await rateLimiter.acquire("yahoo");
25
+ const result = await getYahooCompanySummary(normalizedSymbol);
26
+ if (!result?.price?.symbol) {
27
+ throw new Error(`Yahoo Finance: no company fundamentals returned for ${normalizedSymbol}`);
28
+ }
29
+ const profile = result.assetProfile ?? result.summaryProfile;
30
+ const overview = {
31
+ symbol: result.price.symbol.toUpperCase(),
32
+ name: result.price.longName ?? result.price.shortName ?? result.price.symbol,
33
+ description: profile?.longBusinessSummary ?? "",
34
+ exchange: result.price.exchangeName ?? "",
35
+ sector: profile?.sector ?? "",
36
+ industry: profile?.industry ?? "",
37
+ marketCap: yahooNumber(result.price.marketCap) ?? 0,
38
+ pe: yahooNullableNumber(result.summaryDetail?.trailingPE),
39
+ forwardPe: yahooNullableNumber(result.summaryDetail?.forwardPE),
40
+ eps: yahooNullableNumber(result.defaultKeyStatistics?.trailingEps) ??
41
+ yahooNullableNumber(result.defaultKeyStatistics?.forwardEps),
42
+ dividendYield: yahooNullableNumber(result.summaryDetail?.dividendYield),
43
+ beta: yahooNullableNumber(result.summaryDetail?.beta) ??
44
+ yahooNullableNumber(result.defaultKeyStatistics?.beta),
45
+ week52High: yahooNumber(result.summaryDetail?.fiftyTwoWeekHigh) ?? 0,
46
+ week52Low: yahooNumber(result.summaryDetail?.fiftyTwoWeekLow) ?? 0,
47
+ avgVolume: yahooNumber(result.summaryDetail?.averageVolume) ?? 0,
48
+ profitMargin: yahooNullableNumber(result.financialData?.profitMargins),
49
+ revenueGrowth: yahooNullableNumber(result.financialData?.revenueGrowth),
50
+ };
51
+ cache.set(cacheKey, overview, TTL.FUNDAMENTALS);
52
+ return overview;
53
+ }
54
+ catch (error) {
55
+ const stale = cache.getStale(cacheKey, STALE_LIMIT.FUNDAMENTALS);
56
+ if (stale)
57
+ return stale.value;
58
+ throw error;
59
+ }
60
+ }
17
61
  export async function getQuote(symbol) {
18
62
  const cacheKey = `yahoo:quote:${symbol}`;
19
63
  const cached = cache.get(cacheKey);
@@ -53,6 +97,7 @@ export async function getQuote(symbol) {
53
97
  week52High: meta.fiftyTwoWeekHigh ?? 0,
54
98
  week52Low: meta.fiftyTwoWeekLow ?? 0,
55
99
  timestamp: Date.now(),
100
+ asOf: yahooMarketTimeToIso(meta.regularMarketTime),
56
101
  currency: typeof meta.currency === "string" && meta.currency.trim() !== ""
57
102
  ? meta.currency.trim().toUpperCase()
58
103
  : null,
@@ -70,6 +115,110 @@ export async function getQuote(symbol) {
70
115
  throw error;
71
116
  }
72
117
  }
118
+ export async function getYahooFinancials(symbol) {
119
+ const normalizedSymbol = symbol.toUpperCase();
120
+ const cacheKey = `yahoo:financials:${normalizedSymbol}`;
121
+ const cached = cache.get(cacheKey);
122
+ if (cached)
123
+ return cached;
124
+ try {
125
+ await rateLimiter.acquire("yahoo");
126
+ const period1 = new Date();
127
+ period1.setUTCFullYear(period1.getUTCFullYear() - 6);
128
+ const rows = (await getYahooFinance2Client().fundamentalsTimeSeries(normalizedSymbol, {
129
+ period1,
130
+ period2: new Date(),
131
+ type: "annual",
132
+ module: "all",
133
+ }, { validateResult: false }));
134
+ const statements = rows
135
+ .map((row) => yahooFundamentalsRowToStatement(row))
136
+ .filter((statement) => statement !== null)
137
+ .sort((a, b) => b.fiscalDate.localeCompare(a.fiscalDate))
138
+ .slice(0, 4);
139
+ if (statements.length === 0) {
140
+ throw new Error(`Yahoo Finance: no financial statements returned for ${normalizedSymbol}`);
141
+ }
142
+ cache.set(cacheKey, statements, TTL.FUNDAMENTALS);
143
+ return statements;
144
+ }
145
+ catch (error) {
146
+ const stale = cache.getStale(cacheKey, STALE_LIMIT.FUNDAMENTALS);
147
+ if (stale)
148
+ return stale.value;
149
+ throw error;
150
+ }
151
+ }
152
+ function yahooFundamentalsRowToStatement(row) {
153
+ const fiscalDate = normalizeYahooDate(row.date);
154
+ if (!fiscalDate)
155
+ return null;
156
+ const operatingCashFlowValue = row.annualCashFlowFromContinuingOperatingActivities ??
157
+ row.cashFlowFromContinuingOperatingActivities ??
158
+ row.annualOperatingCashFlow ??
159
+ row.operatingCashFlow;
160
+ const capitalExpenditureValue = row.annualCapitalExpenditure ??
161
+ row.capitalExpenditure ??
162
+ row.annualCapitalExpenditures ??
163
+ row.capitalExpenditures;
164
+ const operatingCashFlow = operatingCashFlowValue ?? 0;
165
+ const capitalExpenditure = capitalExpenditureValue ?? 0;
166
+ const freeCashFlow = row.annualFreeCashFlow ??
167
+ row.freeCashFlow ??
168
+ (operatingCashFlowValue !== undefined && capitalExpenditureValue !== undefined
169
+ ? operatingCashFlow + capitalExpenditure
170
+ : 0);
171
+ return {
172
+ fiscalDate,
173
+ revenue: row.annualTotalRevenue ?? row.totalRevenue ?? 0,
174
+ grossProfit: row.annualGrossProfit ?? row.grossProfit ?? 0,
175
+ operatingIncome: row.annualOperatingIncome ?? row.operatingIncome ?? 0,
176
+ netIncome: row.annualNetIncome ??
177
+ row.netIncome ??
178
+ row.annualNetIncomeCommonStockholders ??
179
+ row.netIncomeCommonStockholders ??
180
+ 0,
181
+ eps: row.annualDilutedEPS ?? row.dilutedEPS ?? row.annualBasicEPS ?? row.basicEPS ?? 0,
182
+ totalAssets: row.annualTotalAssets ?? row.totalAssets ?? 0,
183
+ totalLiabilities: row.annualTotalLiabilitiesNetMinorityInterest ??
184
+ row.totalLiabilitiesNetMinorityInterest ??
185
+ row.annualTotalLiabilities ??
186
+ row.totalLiabilities ??
187
+ 0,
188
+ totalEquity: row.annualStockholdersEquity ??
189
+ row.stockholdersEquity ??
190
+ row.annualCommonStockEquity ??
191
+ row.commonStockEquity ??
192
+ 0,
193
+ operatingCashFlow,
194
+ freeCashFlow,
195
+ totalDebt: row.annualTotalDebt ?? row.totalDebt,
196
+ cashAndEquivalents: row.annualCashAndCashEquivalents ?? row.cashAndCashEquivalents,
197
+ sharesOutstanding: row.annualOrdinarySharesNumber ??
198
+ row.ordinarySharesNumber ??
199
+ row.annualShareIssued ??
200
+ row.shareIssued ??
201
+ row.annualDilutedAverageShares ??
202
+ row.dilutedAverageShares ??
203
+ row.annualBasicAverageShares ??
204
+ row.basicAverageShares,
205
+ };
206
+ }
207
+ function normalizeYahooDate(value) {
208
+ if (value instanceof Date)
209
+ return value.toISOString().slice(0, 10);
210
+ if (typeof value === "number") {
211
+ if (!Number.isFinite(value))
212
+ return null;
213
+ const timestampMs = Math.abs(value) < 1_000_000_000_000 ? value * 1000 : value;
214
+ const date = new Date(timestampMs);
215
+ return Number.isNaN(date.getTime()) ? null : date.toISOString().slice(0, 10);
216
+ }
217
+ if (typeof value !== "string" || value.trim() === "")
218
+ return null;
219
+ const date = new Date(value);
220
+ return Number.isNaN(date.getTime()) ? null : date.toISOString().slice(0, 10);
221
+ }
73
222
  function isZeroResultQuote(quote) {
74
223
  return (quote.price === 0 &&
75
224
  quote.volume === 0 &&
@@ -163,26 +312,49 @@ export async function getFundHoldings(symbol) {
163
312
  }
164
313
  }
165
314
  async function getFundHoldingsSummary(symbol) {
315
+ return getYahooQuoteSummary(symbol, "price,topHoldings");
316
+ }
317
+ async function getYahooCompanySummary(symbol) {
318
+ const modules = [
319
+ "price",
320
+ "assetProfile",
321
+ "summaryProfile",
322
+ "summaryDetail",
323
+ "defaultKeyStatistics",
324
+ "financialData",
325
+ ];
166
326
  try {
167
- return await fetchFundHoldingsSummary(symbol);
327
+ return (await getYahooFinance2Client().quoteSummary(symbol, { modules: [...modules] }, { validateResult: false }));
328
+ }
329
+ catch (error) {
330
+ const data = await getYahooQuoteSummary(symbol, modules.join(","));
331
+ if (data.quoteSummary.error) {
332
+ throw new Error(`Yahoo Finance: ${data.quoteSummary.error.description ?? data.quoteSummary.error.code ?? "quoteSummary error"}`);
333
+ }
334
+ return data.quoteSummary.result?.[0] ?? {};
335
+ }
336
+ }
337
+ async function getYahooQuoteSummary(symbol, modules) {
338
+ try {
339
+ return await fetchYahooQuoteSummary(symbol, modules);
168
340
  }
169
341
  catch (error) {
170
342
  if (!isYahooAuthError(error))
171
343
  throw error;
172
- return fetchFundHoldingsSummaryWithCrumb(symbol);
344
+ return fetchYahooQuoteSummaryWithCrumb(symbol, modules);
173
345
  }
174
346
  }
175
- async function fetchFundHoldingsSummary(symbol) {
176
- const modules = encodeURIComponent("price,topHoldings");
177
- const url = `${QUOTE_SUMMARY_URL}/${encodeURIComponent(symbol)}?modules=${modules}`;
347
+ async function fetchYahooQuoteSummary(symbol, modules) {
348
+ const encodedModules = encodeURIComponent(modules);
349
+ const url = `${QUOTE_SUMMARY_URL}/${encodeURIComponent(symbol)}?modules=${encodedModules}`;
178
350
  return httpGet(url, {
179
351
  headers: { "User-Agent": "OpenCandle/1.0" },
180
352
  });
181
353
  }
182
- async function fetchFundHoldingsSummaryWithCrumb(symbol) {
183
- const modules = encodeURIComponent("price,topHoldings");
354
+ async function fetchYahooQuoteSummaryWithCrumb(symbol, modules) {
355
+ const encodedModules = encodeURIComponent(modules);
184
356
  const { crumb, cookie } = await getYahooCrumb();
185
- const url = `${QUOTE_SUMMARY_URL}/${encodeURIComponent(symbol)}?modules=${modules}&crumb=${encodeURIComponent(crumb)}`;
357
+ const url = `${QUOTE_SUMMARY_URL}/${encodeURIComponent(symbol)}?modules=${encodedModules}&crumb=${encodeURIComponent(crumb)}`;
186
358
  try {
187
359
  return await httpGet(url, {
188
360
  headers: { "User-Agent": BROWSER_UA, Cookie: cookie },
@@ -193,7 +365,7 @@ async function fetchFundHoldingsSummaryWithCrumb(symbol) {
193
365
  throw error;
194
366
  clearCrumbCache();
195
367
  const fresh = await getYahooCrumb();
196
- const retryUrl = `${QUOTE_SUMMARY_URL}/${encodeURIComponent(symbol)}?modules=${modules}&crumb=${encodeURIComponent(fresh.crumb)}`;
368
+ const retryUrl = `${QUOTE_SUMMARY_URL}/${encodeURIComponent(symbol)}?modules=${encodedModules}&crumb=${encodeURIComponent(fresh.crumb)}`;
197
369
  return httpGet(retryUrl, {
198
370
  headers: { "User-Agent": BROWSER_UA, Cookie: fresh.cookie },
199
371
  });
@@ -203,11 +375,18 @@ function isYahooAuthError(error) {
203
375
  return error instanceof HttpError && (error.status === 401 || error.status === 429);
204
376
  }
205
377
  function normalizeHoldingWeight(value) {
206
- const numeric = typeof value === "number" ? value : value?.raw;
378
+ const numeric = yahooNumber(value);
207
379
  if (numeric === undefined || !Number.isFinite(numeric) || numeric <= 0)
208
380
  return undefined;
209
381
  return numeric > 1 ? roundWeight(numeric / 100) : roundWeight(numeric);
210
382
  }
383
+ function yahooNumber(value) {
384
+ const numeric = typeof value === "number" ? value : value?.raw;
385
+ return numeric !== undefined && Number.isFinite(numeric) ? numeric : undefined;
386
+ }
387
+ function yahooNullableNumber(value) {
388
+ return yahooNumber(value) ?? null;
389
+ }
211
390
  function normalizeSectorWeights(sectors) {
212
391
  if (!sectors?.length)
213
392
  return undefined;
@@ -471,6 +650,7 @@ function parseOptionsResponse(data) {
471
650
  putCallRatio: totalCallVolume > 0 ? totalPutVolume / totalCallVolume : 0,
472
651
  quoteStatus,
473
652
  fetchedAt: new Date().toISOString(),
653
+ asOf: yahooMarketTimeToIso(quote.regularMarketTime),
474
654
  };
475
655
  }
476
656
  /**
@@ -521,4 +701,20 @@ function toYahooUnixSeconds(value) {
521
701
  }
522
702
  return Math.floor(new Date(value).getTime() / 1000);
523
703
  }
704
+ function yahooMarketTimeToIso(value) {
705
+ let date;
706
+ if (value instanceof Date) {
707
+ date = value;
708
+ }
709
+ else if (typeof value === "number" && Number.isFinite(value)) {
710
+ date = new Date(value < 10_000_000_000 ? value * 1000 : value);
711
+ }
712
+ else if (typeof value === "string" && value.trim() !== "") {
713
+ const numeric = Number(value);
714
+ date = Number.isFinite(numeric)
715
+ ? new Date(numeric < 10_000_000_000 ? numeric * 1000 : numeric)
716
+ : new Date(value);
717
+ }
718
+ return date && Number.isFinite(date.getTime()) ? date.toISOString() : undefined;
719
+ }
524
720
  //# sourceMappingURL=yahoo-finance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"yahoo-finance.js","sourceRoot":"","sources":["../../src/providers/yahoo-finance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"yahoo-finance.js","sourceRoot":"","sources":["../../src/providers/yahoo-finance.ts"],"names":[],"mappings":"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"}
@@ -186,6 +186,15 @@ const LOWERCASE_FINANCE_TERMS = new Set([
186
186
  "rate",
187
187
  "rates",
188
188
  "cuts",
189
+ // Trading verbs written in lowercase are actions, not tickers — "sell
190
+ // calls" must not mint a SELL symbol. Uppercase ticker extraction is
191
+ // unaffected, so a genuine $SELL / "SELL" ticker still resolves.
192
+ "sell",
193
+ "buy",
194
+ "hold",
195
+ "write",
196
+ "roll",
197
+ "trim",
189
198
  "gold",
190
199
  "oil",
191
200
  "stock",
@@ -418,6 +427,13 @@ function extractDteHint(input) {
418
427
  const explicitDays = lower.match(/\b(\d+)\s*(?:-|to|or)\s*(\d+)\s*(?:dte|days?)\b/);
419
428
  if (explicitDays)
420
429
  return `${explicitDays[1]}-${explicitDays[2]} days`;
430
+ // An explicit user week range ("1-2 weeks out") must outrank the
431
+ // catalyst-derived event_week inference below; a same-day earnings
432
+ // mention otherwise collapses the requested horizon to 0-7 days
433
+ // (historical "1-2 weeks DTE preservation" loss class).
434
+ const explicitWeeks = lower.match(/\b(\d+|one|two|three|four)\s*(?:[-–]|to|or)\s*(\d+|one|two|three|four)\s*weeks?\b/);
435
+ if (explicitWeeks)
436
+ return `${explicitWeeks[1]}-${explicitWeeks[2]} weeks`;
421
437
  if (/\bmonth\b/.test(lower))
422
438
  return "month";
423
439
  if (/\bearnings?\b.*\b(?:today|tonight|this\s+week)\b|\b(?:today|tonight|this\s+week)\b.*\bearnings?\b/.test(lower))