opencandle 0.10.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.
- package/README.md +12 -9
- package/dist/analysts/orchestrator.d.ts +3 -4
- package/dist/analysts/orchestrator.js +34 -44
- package/dist/analysts/orchestrator.js.map +1 -1
- package/dist/cli-main.js +242 -9
- package/dist/cli-main.js.map +1 -1
- package/dist/config.d.ts +4 -9
- package/dist/config.js +7 -10
- package/dist/config.js.map +1 -1
- package/dist/doctor/report.js +1 -1
- package/dist/doctor/report.js.map +1 -1
- package/dist/infra/cache.d.ts +6 -0
- package/dist/infra/cache.js +16 -6
- package/dist/infra/cache.js.map +1 -1
- package/dist/infra/freshness.d.ts +21 -0
- package/dist/infra/freshness.js +119 -0
- package/dist/infra/freshness.js.map +1 -0
- package/dist/infra/market-calendar.d.ts +14 -0
- package/dist/infra/market-calendar.js +137 -0
- package/dist/infra/market-calendar.js.map +1 -0
- package/dist/infra/rate-limiter.js +1 -0
- package/dist/infra/rate-limiter.js.map +1 -1
- package/dist/market-state/daily-report.d.ts +1 -1
- package/dist/market-state/daily-report.js +5 -16
- package/dist/market-state/daily-report.js.map +1 -1
- package/dist/market-state/service.d.ts +0 -35
- package/dist/market-state/service.js +0 -63
- package/dist/market-state/service.js.map +1 -1
- package/dist/market-state/summaries.d.ts +8 -0
- package/dist/market-state/summaries.js +70 -0
- package/dist/market-state/summaries.js.map +1 -0
- package/dist/memory/sqlite.js +20 -19
- package/dist/memory/sqlite.js.map +1 -1
- package/dist/onboarding/providers.d.ts +25 -1
- package/dist/onboarding/providers.js +26 -0
- package/dist/onboarding/providers.js.map +1 -1
- package/dist/pi/opencandle-extension.js +57 -226
- package/dist/pi/opencandle-extension.js.map +1 -1
- package/dist/pi/session-action-dedupe.d.ts +6 -0
- package/dist/pi/session-action-dedupe.js +126 -0
- package/dist/pi/session-action-dedupe.js.map +1 -0
- package/dist/pi/session-writer-lock.d.ts +26 -2
- package/dist/pi/session-writer-lock.js +230 -18
- package/dist/pi/session-writer-lock.js.map +1 -1
- package/dist/pi/setup.js +5 -5
- package/dist/pi/setup.js.map +1 -1
- package/dist/pi/tui-session-coordinator.d.ts +15 -0
- package/dist/pi/tui-session-coordinator.js +283 -0
- package/dist/pi/tui-session-coordinator.js.map +1 -0
- package/dist/prompts/context-builder.js +1 -1
- package/dist/prompts/policy-cards.js +1 -1
- package/dist/prompts/policy-cards.js.map +1 -1
- package/dist/providers/alpha-vantage.js +6 -0
- package/dist/providers/alpha-vantage.js.map +1 -1
- package/dist/providers/coingecko.js +1 -0
- package/dist/providers/coingecko.js.map +1 -1
- package/dist/providers/polymarket.d.ts +2 -0
- package/dist/providers/polymarket.js +163 -0
- package/dist/providers/polymarket.js.map +1 -0
- package/dist/providers/wrap-provider.js +5 -3
- package/dist/providers/wrap-provider.js.map +1 -1
- package/dist/providers/yahoo-finance.d.ts +3 -0
- package/dist/providers/yahoo-finance.js +206 -10
- package/dist/providers/yahoo-finance.js.map +1 -1
- package/dist/routing/classify-intent.js +4 -5
- package/dist/routing/classify-intent.js.map +1 -1
- package/dist/routing/entity-extractor.js +16 -0
- package/dist/routing/entity-extractor.js.map +1 -1
- package/dist/routing/route-manifest.js +1 -2
- package/dist/routing/route-manifest.js.map +1 -1
- package/dist/routing/router-llm-client.js +18 -3
- package/dist/routing/router-llm-client.js.map +1 -1
- package/dist/routing/router-prompt.js +1 -1
- package/dist/routing/router.d.ts +1 -1
- package/dist/routing/router.js +309 -9
- package/dist/routing/router.js.map +1 -1
- package/dist/routing/slot-resolver.d.ts +1 -0
- package/dist/routing/slot-resolver.js +1 -1
- package/dist/routing/slot-resolver.js.map +1 -1
- package/dist/runtime/evidence.d.ts +1 -0
- package/dist/runtime/evidence.js.map +1 -1
- package/dist/runtime/numeric-claims.d.ts +23 -0
- package/dist/runtime/numeric-claims.js +100 -0
- package/dist/runtime/numeric-claims.js.map +1 -0
- package/dist/runtime/planning-evidence.js +1 -76
- package/dist/runtime/planning-evidence.js.map +1 -1
- package/dist/runtime/prompt-step.d.ts +10 -1
- package/dist/runtime/prompt-step.js +116 -2
- package/dist/runtime/prompt-step.js.map +1 -1
- package/dist/runtime/session-coordinator.d.ts +11 -1
- package/dist/runtime/session-coordinator.js +354 -62
- package/dist/runtime/session-coordinator.js.map +1 -1
- package/dist/runtime/validation.d.ts +3 -1
- package/dist/runtime/workflow-events.d.ts +1 -1
- package/dist/runtime/workflow-events.js.map +1 -1
- package/dist/runtime/workflow-types.d.ts +3 -0
- package/dist/runtime/workflow-types.js.map +1 -1
- package/dist/system-prompt.js +1 -1
- package/dist/tools/fundamentals/comps.d.ts +1 -0
- package/dist/tools/fundamentals/comps.js +20 -9
- package/dist/tools/fundamentals/comps.js.map +1 -1
- package/dist/tools/fundamentals/dcf.d.ts +1 -1
- package/dist/tools/fundamentals/dcf.js +190 -76
- package/dist/tools/fundamentals/dcf.js.map +1 -1
- package/dist/tools/index.d.ts +1 -1
- package/dist/tools/index.js +3 -3
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/macro/event-probabilities.d.ts +8 -0
- package/dist/tools/macro/event-probabilities.js +121 -0
- package/dist/tools/macro/event-probabilities.js.map +1 -0
- package/dist/tools/market/crypto-price.d.ts +4 -1
- package/dist/tools/market/crypto-price.js +10 -1
- package/dist/tools/market/crypto-price.js.map +1 -1
- package/dist/tools/market/screen-stocks.js +14 -3
- package/dist/tools/market/screen-stocks.js.map +1 -1
- package/dist/tools/market/stock-quote.d.ts +4 -1
- package/dist/tools/market/stock-quote.js +9 -4
- package/dist/tools/market/stock-quote.js.map +1 -1
- package/dist/tools/options/option-chain.d.ts +4 -1
- package/dist/tools/options/option-chain.js +12 -1
- package/dist/tools/options/option-chain.js.map +1 -1
- package/dist/tools/portfolio/daily-report.js +10 -4
- package/dist/tools/portfolio/daily-report.js.map +1 -1
- package/dist/tools/portfolio/risk-analysis.js +1 -1
- package/dist/tools/portfolio/risk-analysis.js.map +1 -1
- package/dist/tools/technical/backtest.d.ts +23 -5
- package/dist/tools/technical/backtest.js +131 -94
- package/dist/tools/technical/backtest.js.map +1 -1
- package/dist/tools/technical/indicators.js +1 -1
- package/dist/tools/technical/indicators.js.map +1 -1
- package/dist/types/fundamentals.d.ts +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/market.d.ts +2 -0
- package/dist/types/options.d.ts +1 -0
- package/dist/types/prediction-markets.d.ts +13 -0
- package/dist/types/prediction-markets.js +2 -0
- package/dist/types/prediction-markets.js.map +1 -0
- package/gui/server/chat-event-adapter.ts +89 -5
- package/gui/server/http-routes.ts +661 -37
- package/gui/server/invoke-tool.ts +165 -16
- package/gui/server/live-chat-event-adapter.ts +37 -2
- package/gui/server/local-session-coordinator.ts +97 -0
- package/gui/server/market-state-api.ts +64 -48
- package/gui/server/projector.ts +132 -3
- package/gui/server/server.ts +51 -6
- package/gui/server/session-actions.ts +146 -45
- package/gui/server/session-entry-wait.ts +22 -3
- package/gui/server/tool-metadata.ts +3 -1
- package/gui/server/ws-hub.ts +77 -10
- package/gui/shared/chat-events.ts +10 -1
- package/gui/shared/event-reducer.ts +1 -0
- package/gui/web/dist/assets/CatalogOverlay-DZ1niyQm.js +1 -0
- package/gui/web/dist/assets/index-D4F9AJnn.css +2 -0
- package/gui/web/dist/assets/index-DtqMMBTr.js +65 -0
- package/gui/web/dist/index.html +2 -2
- package/package.json +13 -15
- package/src/analysts/orchestrator.ts +35 -56
- package/src/cli-main.ts +253 -13
- package/src/config.ts +12 -20
- package/src/doctor/report.ts +1 -1
- package/src/infra/cache.ts +24 -11
- package/src/infra/freshness.ts +165 -0
- package/src/infra/market-calendar.ts +193 -0
- package/src/infra/rate-limiter.ts +1 -0
- package/src/market-state/daily-report.ts +6 -16
- package/src/market-state/service.ts +0 -136
- package/src/market-state/summaries.ts +75 -0
- package/src/memory/sqlite.ts +23 -19
- package/src/onboarding/providers.ts +29 -1
- package/src/pi/opencandle-extension.ts +67 -270
- package/src/pi/session-action-dedupe.ts +155 -0
- package/src/pi/session-writer-lock.ts +290 -20
- package/src/pi/setup.ts +6 -6
- package/src/pi/tui-session-coordinator.ts +351 -0
- package/src/prompts/context-builder.ts +1 -1
- package/src/prompts/policy-cards.ts +1 -1
- package/src/providers/alpha-vantage.ts +6 -0
- package/src/providers/coingecko.ts +2 -0
- package/src/providers/polymarket.ts +214 -0
- package/src/providers/wrap-provider.ts +5 -3
- package/src/providers/yahoo-finance.ts +339 -27
- package/src/routing/classify-intent.ts +4 -5
- package/src/routing/entity-extractor.ts +17 -0
- package/src/routing/route-manifest.ts +1 -2
- package/src/routing/router-llm-client.ts +31 -19
- package/src/routing/router-prompt.ts +1 -1
- package/src/routing/router.ts +379 -8
- package/src/routing/slot-resolver.ts +1 -1
- package/src/runtime/evidence.ts +1 -0
- package/src/runtime/numeric-claims.ts +108 -0
- package/src/runtime/planning-evidence.ts +6 -91
- package/src/runtime/prompt-step.ts +127 -2
- package/src/runtime/session-coordinator.ts +464 -74
- package/src/runtime/validation.ts +1 -1
- package/src/runtime/workflow-events.ts +2 -0
- package/src/runtime/workflow-types.ts +3 -0
- package/src/system-prompt.ts +1 -1
- package/src/tools/AGENTS.md +1 -1
- package/src/tools/fundamentals/comps.ts +25 -14
- package/src/tools/fundamentals/dcf.ts +217 -87
- package/src/tools/index.ts +3 -3
- package/src/tools/macro/event-probabilities.ts +141 -0
- package/src/tools/market/crypto-price.ts +14 -2
- package/src/tools/market/screen-stocks.ts +14 -3
- package/src/tools/market/stock-quote.ts +49 -43
- package/src/tools/options/option-chain.ts +16 -2
- package/src/tools/portfolio/daily-report.ts +10 -4
- package/src/tools/portfolio/risk-analysis.ts +1 -1
- package/src/tools/technical/backtest.ts +167 -108
- package/src/tools/technical/indicators.ts +1 -1
- package/src/types/fundamentals.ts +1 -0
- package/src/types/index.ts +1 -0
- package/src/types/market.ts +2 -0
- package/src/types/options.ts +1 -0
- package/src/types/prediction-markets.ts +13 -0
- package/dist/tools/portfolio/predictions.d.ts +0 -55
- package/dist/tools/portfolio/predictions.js +0 -422
- package/dist/tools/portfolio/predictions.js.map +0 -1
- package/gui/server/chat-run-session.ts +0 -16
- package/gui/web/dist/assets/CatalogOverlay-CYptsda-.js +0 -1
- package/gui/web/dist/assets/index-B7QAjY5g.js +0 -65
- package/gui/web/dist/assets/index-D5dbWPfM.css +0 -2
- package/src/tools/portfolio/predictions.ts +0 -553
package/README.md
CHANGED
|
@@ -78,13 +78,13 @@ For a five-minute path from install to a successful answer, see [First Run](http
|
|
|
78
78
|
## Example Prompts
|
|
79
79
|
|
|
80
80
|
```text
|
|
81
|
-
/analyze NVDA
|
|
82
81
|
What is AAPL trading at?
|
|
83
82
|
Compare MSFT and GOOGL using price, fundamentals, and sentiment
|
|
84
83
|
Show me TSLA puts with Greeks
|
|
85
84
|
Get the fed funds rate from FRED
|
|
86
85
|
Add 100 shares of NVDA at 120 to my portfolio, then show my portfolio
|
|
87
86
|
Run risk analysis on SPY
|
|
87
|
+
/analyze NVDA # deep research: multi-analyst debate, takes a few minutes
|
|
88
88
|
```
|
|
89
89
|
|
|
90
90
|
Useful slash commands:
|
|
@@ -94,7 +94,7 @@ Useful slash commands:
|
|
|
94
94
|
/login
|
|
95
95
|
/model
|
|
96
96
|
/connect
|
|
97
|
-
/analyze AAPL
|
|
97
|
+
/analyze AAPL # deep research: multi-analyst debate, takes a few minutes
|
|
98
98
|
```
|
|
99
99
|
|
|
100
100
|
Health diagnostics run from your shell:
|
|
@@ -120,7 +120,7 @@ The GUI also has a Diagnostics page at `/diagnostics` with the same health repor
|
|
|
120
120
|
| Technical | Indicators and strategy backtests | Local calculations over market history |
|
|
121
121
|
| Sentiment | Reddit, Twitter/X, Finnhub news, and web sentiment | `rdt-cli` and `twitter-cli` using your normal browser sessions, Finnhub, Exa, Brave, DuckDuckGo |
|
|
122
122
|
| Filings | SEC filing search | SEC EDGAR |
|
|
123
|
-
| Portfolio | Watchlists, holdings,
|
|
123
|
+
| Portfolio | Watchlists, holdings, correlation, risk | Local state plus market data |
|
|
124
124
|
|
|
125
125
|
Yahoo Finance, CoinGecko, SEC EDGAR, DuckDuckGo search, and the alternative.me crypto Fear & Greed index do not require OpenCandle provider keys. Reddit sentiment requires `rdt-cli` (`uv tool install rdt-cli`) plus an active Reddit session in your normal browser. Twitter/X sentiment requires `twitter-cli` (`uv tool install twitter-cli`) plus an active x.com session in your normal browser. Alpha Vantage, FRED, Brave, Exa, and Finnhub unlock deeper coverage when configured.
|
|
126
126
|
|
|
@@ -165,6 +165,8 @@ npm run gui
|
|
|
165
165
|
|
|
166
166
|
## How It Fits Together
|
|
167
167
|
|
|
168
|
+

|
|
169
|
+
|
|
168
170
|
```text
|
|
169
171
|
User prompt
|
|
170
172
|
-> routing and slot resolution
|
|
@@ -184,7 +186,7 @@ src/
|
|
|
184
186
|
|-- routing/ Request understanding, entity extraction, slot resolution
|
|
185
187
|
|-- workflows/ WorkflowDefinition builders
|
|
186
188
|
|-- runtime/ Session coordinator, workflow runner, runtime context
|
|
187
|
-
|-- market-state/ Durable watchlists, portfolios,
|
|
189
|
+
|-- market-state/ Durable watchlists, portfolios, alerts, reports
|
|
188
190
|
|-- memory/ SQLite-backed state and retrieval
|
|
189
191
|
|-- sentiment/ Cross-source sentiment pipeline, scoring, adapters, trends
|
|
190
192
|
|-- analysts/ Multi-analyst orchestration
|
|
@@ -218,9 +220,10 @@ npm run test:watch
|
|
|
218
220
|
npm run test:e2e
|
|
219
221
|
npm run test:e2e:cli
|
|
220
222
|
npm run test:e2e:providers
|
|
221
|
-
npm run
|
|
222
|
-
npm run
|
|
223
|
-
npm run
|
|
223
|
+
npm run eval
|
|
224
|
+
npm run eval -- cases
|
|
225
|
+
npm run eval -- product
|
|
226
|
+
npm run eval -- competitive
|
|
224
227
|
```
|
|
225
228
|
|
|
226
229
|
Baseline check:
|
|
@@ -229,7 +232,7 @@ Baseline check:
|
|
|
229
232
|
npm test
|
|
230
233
|
```
|
|
231
234
|
|
|
232
|
-
The e2e, provider, and eval commands can hit live APIs, live model providers, or local agent CLIs. Run them intentionally; see [Testing and Evals](https://opencandle.app/docs/testing-and-evals.html).
|
|
235
|
+
The e2e, provider, and eval commands can hit live APIs, live model providers, or local agent CLIs. `npm run eval` lists every eval suite; run suites through `npm run eval -- <suite>`. Run them intentionally; see [Testing and Evals](https://opencandle.app/docs/testing-and-evals.html).
|
|
233
236
|
|
|
234
237
|
Repository rules that matter:
|
|
235
238
|
|
|
@@ -260,7 +263,7 @@ See [tests/harness/README.md](https://github.com/Kahtaf/OpenCandle/blob/main/tes
|
|
|
260
263
|
- [Configuration](https://opencandle.app/docs/configuration.html)
|
|
261
264
|
- [System Architecture](https://opencandle.app/docs/system-architecture.html)
|
|
262
265
|
- [Testing and Evals](https://opencandle.app/docs/testing-and-evals.html)
|
|
263
|
-
- [
|
|
266
|
+
- [Comparisons](https://opencandle.app/docs/comparisons.html)
|
|
264
267
|
|
|
265
268
|
## License
|
|
266
269
|
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import type { WorkflowDefinition } from "../runtime/prompt-step.js";
|
|
2
|
+
import type { AnalystOutput } from "../runtime/workflow-types.js";
|
|
2
3
|
export type AnalystRole = "valuation" | "momentum" | "options" | "contrarian" | "risk";
|
|
3
4
|
export declare function buildBullPrompt(symbol: string): string;
|
|
4
5
|
export declare function buildBearPrompt(symbol: string): string;
|
|
5
6
|
export declare function buildRebuttalPrompt(symbol: string): string;
|
|
7
|
+
export declare function buildAnalystVoteTallyBlock(outputs: AnalystOutput[]): string | null;
|
|
6
8
|
export declare function buildSynthesisPrompt(symbol: string): string;
|
|
7
9
|
export declare function getInitialAnalysisPrompt(symbol: string): string;
|
|
8
|
-
export
|
|
9
|
-
debate?: boolean;
|
|
10
|
-
}
|
|
11
|
-
export declare function buildComprehensiveAnalysisDefinition(symbol: string, options?: ComprehensiveAnalysisOptions): WorkflowDefinition;
|
|
10
|
+
export declare function buildComprehensiveAnalysisDefinition(symbol: string): WorkflowDefinition;
|
|
12
11
|
export declare function isAnalysisRequest(input: string): {
|
|
13
12
|
match: boolean;
|
|
14
13
|
symbol?: string;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { promptStep } from "../runtime/prompt-step.js";
|
|
2
|
+
import { isAnalystSplit, tallyVotes } from "./contracts.js";
|
|
2
3
|
const SYMBOL_CAPTURE = "(\\$?[A-Za-z]{1,5}(?:[./-][A-Za-z]{1,2})?)";
|
|
3
4
|
const NORMALIZED_SYMBOL_PATTERN = /^[A-Z]{1,5}(?:[./-][A-Z]{1,2})?$/;
|
|
4
5
|
const VOTING_INSTRUCTION = `
|
|
@@ -95,7 +96,24 @@ End with this exact format:
|
|
|
95
96
|
CONCESSIONS: [bullet list of points you concede]
|
|
96
97
|
REMAINING CONVICTION: [1-10, where 10 = fully confident despite bear case]`;
|
|
97
98
|
}
|
|
99
|
+
export function buildAnalystVoteTallyBlock(outputs) {
|
|
100
|
+
if (outputs.length < 2)
|
|
101
|
+
return null;
|
|
102
|
+
const tally = tallyVotes(outputs);
|
|
103
|
+
const split = isAnalystSplit(outputs);
|
|
104
|
+
return `## Deterministic Analyst Vote Tally
|
|
105
|
+
- Parsed analyst outputs: ${outputs.length}
|
|
106
|
+
- BUY: ${tally.buy}
|
|
107
|
+
- HOLD: ${tally.hold}
|
|
108
|
+
- SELL: ${tally.sell}
|
|
109
|
+
- Weighted average conviction: ${tally.weightedConviction}
|
|
110
|
+
- Computed verdict: ${tally.verdict}
|
|
111
|
+
- BUY+SELL split: ${split ? "yes" : "no"}`;
|
|
112
|
+
}
|
|
98
113
|
export function buildSynthesisPrompt(symbol) {
|
|
114
|
+
// The runtime tally block is injected at dispatch time by
|
|
115
|
+
// SessionCoordinator.prepareWorkflowPrompt, where parsed analyst outputs
|
|
116
|
+
// exist; this builder runs at workflow-definition time and stays static.
|
|
99
117
|
return `**[Synthesis]** You have received five analyst signals with conviction scores for ${symbol}, a bull case arguing FOR the position, and a bear case arguing AGAINST.
|
|
100
118
|
If a bull rebuttal with concessions appears above (not a line starting with "REBUTTAL SKIPPED"), treat the concessions as validated risks that must be addressed.
|
|
101
119
|
|
|
@@ -125,22 +143,10 @@ Additionally check:
|
|
|
125
143
|
3. Is the reversal condition specific and testable (not vague like "if macro deteriorates")?
|
|
126
144
|
|
|
127
145
|
Output: VALIDATED if all checks pass, or list specific corrections needed.`;
|
|
128
|
-
const SYNTHESIS_PROMPT_NO_DEBATE = (symbol) => `**[Synthesis]** You have received five analyst signals above for ${symbol}. Tally the SIGNAL votes (BUY/HOLD/SELL) and weight them by CONVICTION scores. Then provide:
|
|
129
|
-
1. **Vote Tally**: X BUY, Y HOLD, Z SELL — weighted average conviction
|
|
130
|
-
2. **Verdict**: Buy, Hold, or Sell — based on the signal consensus
|
|
131
|
-
3. **Key thesis** in 2-3 sentences
|
|
132
|
-
4. **Bull case** — what could go right
|
|
133
|
-
5. **Bear case** — what could go wrong
|
|
134
|
-
6. **Key levels** — entry, stop-loss, and target prices
|
|
135
|
-
7. **Position sizing recommendation** based on risk profile
|
|
136
|
-
|
|
137
|
-
Be direct and actionable. This is your final word on ${symbol}.`;
|
|
138
|
-
const VALIDATION_PROMPT_NO_DEBATE = (symbol) => `**[Validation Check]** Review your complete analysis of ${symbol} above. For each specific number you cited (price, P/E, revenue, RSI, intrinsic value, etc.), verify it matches the tool output data you received. Flag any inconsistencies. If you stated a number without fetching it first, call that out as UNVERIFIED. Output: VALIDATED if all numbers check out, or list specific corrections needed.`;
|
|
139
146
|
export function getInitialAnalysisPrompt(symbol) {
|
|
140
147
|
return `Begin comprehensive analysis of ${symbol}. Start by getting the current stock quote.`;
|
|
141
148
|
}
|
|
142
|
-
export function buildComprehensiveAnalysisDefinition(symbol
|
|
143
|
-
const debate = options?.debate ?? true;
|
|
149
|
+
export function buildComprehensiveAnalysisDefinition(symbol) {
|
|
144
150
|
const roles = ["valuation", "momentum", "options", "contrarian", "risk"];
|
|
145
151
|
const analystOutputs = roles.map((r) => `${r}_signal`);
|
|
146
152
|
const analystSteps = [
|
|
@@ -153,44 +159,28 @@ export function buildComprehensiveAnalysisDefinition(symbol, options) {
|
|
|
153
159
|
expectedOutputs: [`${role}_signal`],
|
|
154
160
|
})),
|
|
155
161
|
];
|
|
156
|
-
if (debate) {
|
|
157
|
-
return {
|
|
158
|
-
workflowType: "comprehensive_analysis",
|
|
159
|
-
steps: [
|
|
160
|
-
...analystSteps,
|
|
161
|
-
promptStep("debate_bull", "Bull researcher case", buildBullPrompt(symbol), {
|
|
162
|
-
requiredInputs: analystOutputs,
|
|
163
|
-
expectedOutputs: ["bull_thesis"],
|
|
164
|
-
}),
|
|
165
|
-
promptStep("debate_bear", "Bear researcher case", buildBearPrompt(symbol), {
|
|
166
|
-
requiredInputs: [...analystOutputs, "bull_thesis"],
|
|
167
|
-
expectedOutputs: ["bear_thesis"],
|
|
168
|
-
}),
|
|
169
|
-
promptStep("debate_rebuttal", "Bull rebuttal (self-gating)", buildRebuttalPrompt(symbol), {
|
|
170
|
-
requiredInputs: [...analystOutputs, "bull_thesis", "bear_thesis"],
|
|
171
|
-
expectedOutputs: ["rebuttal"],
|
|
172
|
-
}),
|
|
173
|
-
promptStep("synthesis", "Resolve the debate", buildSynthesisPrompt(symbol), {
|
|
174
|
-
requiredInputs: [...analystOutputs, "bull_thesis", "bear_thesis", "rebuttal"],
|
|
175
|
-
expectedOutputs: ["verdict"],
|
|
176
|
-
}),
|
|
177
|
-
promptStep("validation", "Validate cited numbers", VALIDATION_PROMPT_DEBATE(symbol), {
|
|
178
|
-
skippable: true,
|
|
179
|
-
requiredInputs: ["verdict"],
|
|
180
|
-
expectedOutputs: ["validation_result"],
|
|
181
|
-
}),
|
|
182
|
-
],
|
|
183
|
-
};
|
|
184
|
-
}
|
|
185
162
|
return {
|
|
186
163
|
workflowType: "comprehensive_analysis",
|
|
187
164
|
steps: [
|
|
188
165
|
...analystSteps,
|
|
189
|
-
promptStep("
|
|
166
|
+
promptStep("debate_bull", "Bull researcher case", buildBullPrompt(symbol), {
|
|
190
167
|
requiredInputs: analystOutputs,
|
|
168
|
+
expectedOutputs: ["bull_thesis"],
|
|
169
|
+
}),
|
|
170
|
+
promptStep("debate_bear", "Bear researcher case", buildBearPrompt(symbol), {
|
|
171
|
+
requiredInputs: [...analystOutputs, "bull_thesis"],
|
|
172
|
+
expectedOutputs: ["bear_thesis"],
|
|
173
|
+
}),
|
|
174
|
+
promptStep("debate_rebuttal", "Bull rebuttal (self-gating)", buildRebuttalPrompt(symbol), {
|
|
175
|
+
skippable: true,
|
|
176
|
+
requiredInputs: [...analystOutputs, "bull_thesis", "bear_thesis"],
|
|
177
|
+
expectedOutputs: ["rebuttal"],
|
|
178
|
+
}),
|
|
179
|
+
promptStep("synthesis", "Resolve the debate", buildSynthesisPrompt(symbol), {
|
|
180
|
+
requiredInputs: [...analystOutputs, "bull_thesis", "bear_thesis", "rebuttal"],
|
|
191
181
|
expectedOutputs: ["verdict"],
|
|
192
182
|
}),
|
|
193
|
-
promptStep("validation", "Validate cited numbers",
|
|
183
|
+
promptStep("validation", "Validate cited numbers", VALIDATION_PROMPT_DEBATE(symbol), {
|
|
194
184
|
skippable: true,
|
|
195
185
|
requiredInputs: ["verdict"],
|
|
196
186
|
expectedOutputs: ["validation_result"],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/analysts/orchestrator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../src/analysts/orchestrator.ts"],"names":[],"mappings":"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"}
|
package/dist/cli-main.js
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import { spawn } from "node:child_process";
|
|
2
|
+
import { randomUUID } from "node:crypto";
|
|
2
3
|
import { createRequire } from "node:module";
|
|
3
4
|
import { dirname, resolve } from "node:path";
|
|
5
|
+
import { createInterface } from "node:readline/promises";
|
|
4
6
|
import { fileURLToPath } from "node:url";
|
|
5
|
-
import { AuthStorage, createAgentSessionRuntime, createAgentSessionServices, DefaultPackageManager, getAgentDir, InteractiveMode, initTheme, ModelRegistry, SettingsManager, } from "@earendil-works/pi-coding-agent";
|
|
7
|
+
import { AuthStorage, createAgentSessionRuntime, createAgentSessionServices, DefaultPackageManager, getAgentDir, InteractiveMode, initTheme, ModelRegistry, SessionManager, SettingsManager, } from "@earendil-works/pi-coding-agent";
|
|
6
8
|
import { loadEnv } from "./config.js";
|
|
7
9
|
import { handleDoctorCommand } from "./doctor/cli-command.js";
|
|
8
10
|
import { createOpenCandleSession } from "./pi/session.js";
|
|
9
11
|
import { continueOpenCandleSession } from "./pi/session-storage.js";
|
|
10
|
-
import { acquireSessionWriterLock, refreshSessionWriterLock, releaseSessionWriterLock, writerLockScopeForSession, } from "./pi/session-writer-lock.js";
|
|
12
|
+
import { acquireSessionWriterLock, migrateWriterLockScope, refreshSessionWriterLock, releaseSessionWriterLock, writerLockScopeForSession, } from "./pi/session-writer-lock.js";
|
|
13
|
+
import { startTuiSessionCoordinatorServer } from "./pi/tui-session-coordinator.js";
|
|
11
14
|
const require = createRequire(import.meta.url);
|
|
12
15
|
const packageRoot = resolve(dirname(fileURLToPath(import.meta.url)), "..");
|
|
13
16
|
async function handlePackageCommand(args, cwd, agentDir) {
|
|
@@ -162,16 +165,68 @@ async function main() {
|
|
|
162
165
|
const shouldSuppressFallbackMessage = modelRegistry.getAvailable().length === 0;
|
|
163
166
|
initTheme(settingsManager.getTheme(), true);
|
|
164
167
|
const sessionManager = continueOpenCandleSession(cwd);
|
|
168
|
+
let activeSessionManager = sessionManager;
|
|
165
169
|
const sessionWriterLockScope = writerLockScopeForSession(sessionManager);
|
|
166
|
-
|
|
170
|
+
let runtime;
|
|
171
|
+
const tuiCoordinator = await startTuiSessionCoordinatorServer({
|
|
172
|
+
getSession: () => {
|
|
173
|
+
if (!runtime)
|
|
174
|
+
throw new Error("OpenCandle is still starting this session.");
|
|
175
|
+
return runtime.session;
|
|
176
|
+
},
|
|
177
|
+
getSessionManager: () => activeSessionManager,
|
|
178
|
+
getModelUnavailableMessage: () => {
|
|
179
|
+
if (!runtime)
|
|
180
|
+
return "OpenCandle is still starting this session.";
|
|
181
|
+
const session = runtime.session;
|
|
182
|
+
const model = session.model;
|
|
183
|
+
if (!model) {
|
|
184
|
+
return "Connect an AI model before chat can run. Paste a Google Gemini, OpenAI, or Anthropic API key in the setup panel.";
|
|
185
|
+
}
|
|
186
|
+
if (!session.modelRegistry.hasConfiguredAuth(model)) {
|
|
187
|
+
return "Connect an AI model before chat can run. Paste a Google Gemini, OpenAI, or Anthropic API key in the setup panel.";
|
|
188
|
+
}
|
|
189
|
+
return null;
|
|
190
|
+
},
|
|
191
|
+
syncWriterLockScope: () => syncActiveSessionWriterLockScope(),
|
|
192
|
+
});
|
|
193
|
+
const sessionWriterLock = await acquireSessionWriterLock(sessionWriterLockScope, "tui", {
|
|
194
|
+
coordinatorEndpoint: tuiCoordinator.endpoint,
|
|
195
|
+
coordinatorSecret: tuiCoordinator.secret,
|
|
196
|
+
});
|
|
167
197
|
if (sessionWriterLock.role !== "writer") {
|
|
168
|
-
|
|
198
|
+
await tuiCoordinator.close();
|
|
199
|
+
if (await runFollowerTuiProxy(sessionWriterLock.lock, sessionManager, cwd))
|
|
200
|
+
return;
|
|
201
|
+
console.error("OpenCandle is syncing this session in another window. Try again shortly.");
|
|
169
202
|
process.exitCode = 1;
|
|
170
203
|
return;
|
|
171
204
|
}
|
|
172
205
|
let activeSessionWriterLockScope = sessionWriterLockScope;
|
|
173
|
-
|
|
174
|
-
|
|
206
|
+
let activeSessionWriterLockLost = false;
|
|
207
|
+
function syncActiveSessionWriterLockScope() {
|
|
208
|
+
if (activeSessionWriterLockLost)
|
|
209
|
+
throw new Error("OpenCandle is reconnecting to this session.");
|
|
210
|
+
const nextScope = writerLockScopeForSession(activeSessionManager);
|
|
211
|
+
if (nextScope === activeSessionWriterLockScope)
|
|
212
|
+
return;
|
|
213
|
+
if (migrateWriterLockScope(activeSessionWriterLockScope, nextScope)) {
|
|
214
|
+
activeSessionWriterLockScope = nextScope;
|
|
215
|
+
}
|
|
216
|
+
else {
|
|
217
|
+
activeSessionWriterLockLost = true;
|
|
218
|
+
throw new Error("OpenCandle is reconnecting to this session.");
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
const writerLockHeartbeat = setInterval(() => {
|
|
222
|
+
try {
|
|
223
|
+
syncActiveSessionWriterLockScope();
|
|
224
|
+
refreshSessionWriterLock(activeSessionWriterLockScope);
|
|
225
|
+
}
|
|
226
|
+
catch {
|
|
227
|
+
clearInterval(writerLockHeartbeat);
|
|
228
|
+
}
|
|
229
|
+
}, 5000);
|
|
175
230
|
try {
|
|
176
231
|
runtime = await createAgentSessionRuntime(async (opts) => {
|
|
177
232
|
const services = await createAgentSessionServices({
|
|
@@ -196,16 +251,24 @@ async function main() {
|
|
|
196
251
|
diagnostics: services.diagnostics,
|
|
197
252
|
};
|
|
198
253
|
}, { cwd, agentDir, sessionManager });
|
|
254
|
+
syncActiveSessionWriterLockScope();
|
|
199
255
|
runtime.setRebindSession(async (nextSession) => {
|
|
200
256
|
const nextSessionWriterLockScope = writerLockScopeForSession(nextSession.sessionManager);
|
|
201
|
-
if (nextSessionWriterLockScope === activeSessionWriterLockScope)
|
|
257
|
+
if (nextSessionWriterLockScope === activeSessionWriterLockScope) {
|
|
258
|
+
activeSessionManager = nextSession.sessionManager;
|
|
259
|
+
syncActiveSessionWriterLockScope();
|
|
202
260
|
return;
|
|
203
|
-
|
|
261
|
+
}
|
|
262
|
+
const nextSessionWriterLock = await acquireSessionWriterLock(nextSessionWriterLockScope, "tui", {
|
|
263
|
+
coordinatorEndpoint: tuiCoordinator.endpoint,
|
|
264
|
+
coordinatorSecret: tuiCoordinator.secret,
|
|
265
|
+
});
|
|
204
266
|
if (nextSessionWriterLock.role !== "writer") {
|
|
205
|
-
throw new Error(
|
|
267
|
+
throw new Error("OpenCandle is syncing this session in another window. Try again shortly.");
|
|
206
268
|
}
|
|
207
269
|
releaseSessionWriterLock(activeSessionWriterLockScope);
|
|
208
270
|
activeSessionWriterLockScope = nextSessionWriterLockScope;
|
|
271
|
+
activeSessionManager = nextSession.sessionManager;
|
|
209
272
|
});
|
|
210
273
|
const interactiveMode = new InteractiveMode(runtime, {
|
|
211
274
|
modelFallbackMessage: shouldSuppressFallbackMessage
|
|
@@ -217,8 +280,178 @@ async function main() {
|
|
|
217
280
|
finally {
|
|
218
281
|
clearInterval(writerLockHeartbeat);
|
|
219
282
|
releaseSessionWriterLock(activeSessionWriterLockScope);
|
|
283
|
+
await tuiCoordinator.close();
|
|
220
284
|
await runtime?.dispose();
|
|
221
285
|
}
|
|
222
286
|
}
|
|
287
|
+
async function runFollowerTuiProxy(lock, sessionManager, cwd) {
|
|
288
|
+
if (!lock.coordinatorEndpoint || !lock.coordinatorSecret)
|
|
289
|
+
return false;
|
|
290
|
+
if (!process.stdin.isTTY)
|
|
291
|
+
return false;
|
|
292
|
+
const input = createInterface({ input: process.stdin, output: process.stdout });
|
|
293
|
+
const follower = startFollowerTranscriptPrinter(sessionManager, cwd);
|
|
294
|
+
try {
|
|
295
|
+
console.log("Connected to the active OpenCandle session. Type /exit to close.");
|
|
296
|
+
while (true) {
|
|
297
|
+
const prompt = (await input.question("> ")).trim();
|
|
298
|
+
if (!prompt)
|
|
299
|
+
continue;
|
|
300
|
+
if (prompt === "/exit" || prompt === "/quit")
|
|
301
|
+
break;
|
|
302
|
+
await forwardTuiPrompt(lock, sessionManager.getSessionId(), prompt);
|
|
303
|
+
follower.markSeen();
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
finally {
|
|
307
|
+
follower.stop();
|
|
308
|
+
input.close();
|
|
309
|
+
}
|
|
310
|
+
return true;
|
|
311
|
+
}
|
|
312
|
+
function startFollowerTranscriptPrinter(sessionManager, cwd) {
|
|
313
|
+
const sessionFile = sessionManager.getSessionFile();
|
|
314
|
+
if (!sessionFile)
|
|
315
|
+
return { stop: () => { }, markSeen: () => { } };
|
|
316
|
+
const seenEntryIds = new Set(sessionManager
|
|
317
|
+
.getEntries()
|
|
318
|
+
.map((entry) => entryId(entry))
|
|
319
|
+
.filter((id) => Boolean(id)));
|
|
320
|
+
const openFreshSession = () => SessionManager.open(sessionFile, sessionManager.getSessionDir(), cwd);
|
|
321
|
+
const markSeen = () => {
|
|
322
|
+
try {
|
|
323
|
+
for (const entry of openFreshSession().getEntries()) {
|
|
324
|
+
const id = entryId(entry);
|
|
325
|
+
if (id)
|
|
326
|
+
seenEntryIds.add(id);
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
catch {
|
|
330
|
+
// The owner may be rotating the session file; the next poll will catch up.
|
|
331
|
+
}
|
|
332
|
+
};
|
|
333
|
+
let polling = false;
|
|
334
|
+
const poll = () => {
|
|
335
|
+
if (polling)
|
|
336
|
+
return;
|
|
337
|
+
polling = true;
|
|
338
|
+
try {
|
|
339
|
+
for (const entry of openFreshSession().getEntries()) {
|
|
340
|
+
const id = entryId(entry);
|
|
341
|
+
if (!id || seenEntryIds.has(id))
|
|
342
|
+
continue;
|
|
343
|
+
seenEntryIds.add(id);
|
|
344
|
+
const text = followerEntryText(entry);
|
|
345
|
+
if (text)
|
|
346
|
+
process.stdout.write(`\n${text}\n`);
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
catch {
|
|
350
|
+
// The owner may be rotating the session file; the next poll will catch up.
|
|
351
|
+
}
|
|
352
|
+
finally {
|
|
353
|
+
polling = false;
|
|
354
|
+
}
|
|
355
|
+
};
|
|
356
|
+
const interval = setInterval(poll, 1000);
|
|
357
|
+
return { stop: () => clearInterval(interval), markSeen };
|
|
358
|
+
}
|
|
359
|
+
function entryId(entry) {
|
|
360
|
+
const record = asRecord(entry);
|
|
361
|
+
return typeof record.id === "string" ? record.id : null;
|
|
362
|
+
}
|
|
363
|
+
function followerEntryText(entry) {
|
|
364
|
+
const record = asRecord(entry);
|
|
365
|
+
if (record.type === "message") {
|
|
366
|
+
const message = asRecord(record.message);
|
|
367
|
+
const role = typeof message.role === "string" ? message.role : "message";
|
|
368
|
+
const text = contentText(message.content);
|
|
369
|
+
return text ? `${role}: ${text}` : "";
|
|
370
|
+
}
|
|
371
|
+
if (record.type === "custom") {
|
|
372
|
+
const text = contentText(record.message ?? record.text ?? record.content);
|
|
373
|
+
return text ? `system: ${text}` : "";
|
|
374
|
+
}
|
|
375
|
+
return "";
|
|
376
|
+
}
|
|
377
|
+
async function forwardTuiPrompt(lock, sessionId, prompt) {
|
|
378
|
+
if (!lock.coordinatorEndpoint || !lock.coordinatorSecret)
|
|
379
|
+
return;
|
|
380
|
+
const response = await fetch(new URL("/api/local-coordinator/chat-run", lock.coordinatorEndpoint), {
|
|
381
|
+
method: "POST",
|
|
382
|
+
headers: {
|
|
383
|
+
"content-type": "application/json",
|
|
384
|
+
"x-opencandle-coordinator-secret": lock.coordinatorSecret,
|
|
385
|
+
},
|
|
386
|
+
body: JSON.stringify({
|
|
387
|
+
prompt,
|
|
388
|
+
sessionId,
|
|
389
|
+
actionId: `tui-proxy-${randomUUID()}`,
|
|
390
|
+
}),
|
|
391
|
+
});
|
|
392
|
+
if (!response.ok) {
|
|
393
|
+
const body = (await response.json().catch(() => ({})));
|
|
394
|
+
console.error(body.error || response.statusText);
|
|
395
|
+
return;
|
|
396
|
+
}
|
|
397
|
+
await printSseResponse(response);
|
|
398
|
+
}
|
|
399
|
+
async function printSseResponse(response) {
|
|
400
|
+
const reader = response.body?.getReader();
|
|
401
|
+
if (!reader)
|
|
402
|
+
return;
|
|
403
|
+
const decoder = new TextDecoder();
|
|
404
|
+
let buffer = "";
|
|
405
|
+
while (true) {
|
|
406
|
+
const { value, done } = await reader.read();
|
|
407
|
+
if (done)
|
|
408
|
+
break;
|
|
409
|
+
buffer += decoder.decode(value, { stream: true });
|
|
410
|
+
let index = buffer.indexOf("\n\n");
|
|
411
|
+
while (index !== -1) {
|
|
412
|
+
const block = buffer.slice(0, index);
|
|
413
|
+
buffer = buffer.slice(index + 2);
|
|
414
|
+
printSseBlock(block);
|
|
415
|
+
index = buffer.indexOf("\n\n");
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
function printSseBlock(block) {
|
|
420
|
+
const data = block
|
|
421
|
+
.split("\n")
|
|
422
|
+
.filter((line) => line.startsWith("data:"))
|
|
423
|
+
.map((line) => line.slice(5).trim())
|
|
424
|
+
.join("\n");
|
|
425
|
+
if (!data)
|
|
426
|
+
return;
|
|
427
|
+
const event = JSON.parse(data);
|
|
428
|
+
const text = sseEventText(event);
|
|
429
|
+
if (event.type === "message.completed" && text) {
|
|
430
|
+
process.stdout.write(`${text}\n`);
|
|
431
|
+
}
|
|
432
|
+
else if (event.type === "run.failed") {
|
|
433
|
+
process.stderr.write(`${event.error?.message || "Run failed"}\n`);
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
function sseEventText(event) {
|
|
437
|
+
if (event.text)
|
|
438
|
+
return event.text;
|
|
439
|
+
return contentText(event.content);
|
|
440
|
+
}
|
|
441
|
+
function contentText(content) {
|
|
442
|
+
if (typeof content === "string")
|
|
443
|
+
return content;
|
|
444
|
+
if (!Array.isArray(content))
|
|
445
|
+
return "";
|
|
446
|
+
return content
|
|
447
|
+
.filter((part) => part.type === "text" && part.text)
|
|
448
|
+
.map((part) => part.text)
|
|
449
|
+
.join("");
|
|
450
|
+
}
|
|
451
|
+
function asRecord(value) {
|
|
452
|
+
return typeof value === "object" && value !== null && !Array.isArray(value)
|
|
453
|
+
? value
|
|
454
|
+
: {};
|
|
455
|
+
}
|
|
223
456
|
await main();
|
|
224
457
|
//# sourceMappingURL=cli-main.js.map
|
package/dist/cli-main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-main.js","sourceRoot":"","sources":["../src/cli-main.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli-main.js","sourceRoot":"","sources":["../src/cli-main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EACL,WAAW,EACX,yBAAyB,EACzB,0BAA0B,EAC1B,qBAAqB,EACrB,WAAW,EACX,eAAe,EACf,SAAS,EACT,aAAa,EACb,cAAc,EACd,eAAe,GAChB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,EACxB,wBAAwB,EAExB,yBAAyB,GAC1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,gCAAgC,EAAE,MAAM,iCAAiC,CAAC;AAEnF,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAE3E,KAAK,UAAU,oBAAoB,CACjC,IAAc,EACd,GAAW,EACX,QAAgB;IAEhB,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAChC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACxF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC9D,MAAM,cAAc,GAAG,IAAI,qBAAqB,CAAC;QAC/C,GAAG;QACH,QAAQ;QACR,eAAe;KAChB,CAAC,CAAC;IACH,cAAc,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3C,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACxD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAE9D,QAAQ,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACrD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;gBACzD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAChD,cAAc,CAAC,mBAAmB,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC;YACnC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBACxD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAG,cAAc,CAAC,wBAAwB,CAAC,MAAM,EAAE;gBAC9D,KAAK;aACN,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,iCAAiC,MAAM,EAAE,CAAC,CAAC;gBACzD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC;YACnC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,UAAU,GAAG,eAAe,CAAC,iBAAiB,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC;YACtE,MAAM,WAAW,GAAG,eAAe,CAAC,kBAAkB,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC;YACxE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxD,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;gBACtC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBAC9B,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;oBAC7B,MAAM,CAAC,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;oBACrD,MAAM,IAAI,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;oBACxD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;YACD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;gBACjC,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;oBAC9B,MAAM,CAAC,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;oBACrD,MAAM,IAAI,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;oBAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC;YACpE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,IAAc,EAAE,GAAW;IACzD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IAEpC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;QAC5E,GAAG;QACH,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,WAAW,EAAE,EAAE;QACzD,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YACjC,IAAI,MAAM,EAAE,CAAC;gBACX,WAAW,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;YACzB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC5B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,IAAc,EAAE,GAAW;IAC7D,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAExC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;QAC7E,GAAG;QACH,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,WAAW,EAAE,EAAE;QACzD,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YACjC,IAAI,MAAM,EAAE,CAAC;gBACX,WAAW,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;YACzB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC5B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,OAAO,EAAE,CAAC;IAEV,IAAI,MAAM,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;QACzC,OAAO;IACT,CAAC;IAED,IAAI,MAAM,oBAAoB,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;QAC7C,OAAO;IACT,CAAC;IAED,IAAI,MAAM,mBAAmB,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC;QACtD,OAAO;IACT,CAAC;IAED,IAAI,MAAM,oBAAoB,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC;QACvD,OAAO;IACT,CAAC;IAED,kDAAkD;IAClD,MAAM,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC9D,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;IACzC,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACxD,MAAM,6BAA6B,GAAG,aAAa,CAAC,YAAY,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC;IAEhF,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;IAE5C,MAAM,cAAc,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAC;IACtD,IAAI,oBAAoB,GAAG,cAAc,CAAC;IAC1C,MAAM,sBAAsB,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAC;IACzE,IAAI,OAA0E,CAAC;IAC/E,MAAM,cAAc,GAAG,MAAM,gCAAgC,CAAC;QAC5D,UAAU,EAAE,GAAG,EAAE;YACf,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAC5E,OAAO,OAAO,CAAC,OAAO,CAAC;QACzB,CAAC;QACD,iBAAiB,EAAE,GAAG,EAAE,CAAC,oBAAoB;QAC7C,0BAA0B,EAAE,GAAG,EAAE;YAC/B,IAAI,CAAC,OAAO;gBAAE,OAAO,4CAA4C,CAAC;YAClE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YAChC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,kHAAkH,CAAC;YAC5H,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpD,OAAO,kHAAkH,CAAC;YAC5H,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,mBAAmB,EAAE,GAAG,EAAE,CAAC,gCAAgC,EAAE;KAC9D,CAAC,CAAC;IACH,MAAM,iBAAiB,GAAG,MAAM,wBAAwB,CAAC,sBAAsB,EAAE,KAAK,EAAE;QACtF,mBAAmB,EAAE,cAAc,CAAC,QAAQ;QAC5C,iBAAiB,EAAE,cAAc,CAAC,MAAM;KACzC,CAAC,CAAC;IACH,IAAI,iBAAiB,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,cAAc,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,MAAM,mBAAmB,CAAC,iBAAiB,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,CAAC;YAAE,OAAO;QACnF,OAAO,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAC1F,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,IAAI,4BAA4B,GAAG,sBAAsB,CAAC;IAC1D,IAAI,2BAA2B,GAAG,KAAK,CAAC;IACxC,SAAS,gCAAgC;QACvC,IAAI,2BAA2B;YAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAChG,MAAM,SAAS,GAAG,yBAAyB,CAAC,oBAAoB,CAAC,CAAC;QAClE,IAAI,SAAS,KAAK,4BAA4B;YAAE,OAAO;QACvD,IAAI,sBAAsB,CAAC,4BAA4B,EAAE,SAAS,CAAC,EAAE,CAAC;YACpE,4BAA4B,GAAG,SAAS,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,2BAA2B,GAAG,IAAI,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IACD,MAAM,mBAAmB,GAAG,WAAW,CAAC,GAAG,EAAE;QAC3C,IAAI,CAAC;YACH,gCAAgC,EAAE,CAAC;YACnC,wBAAwB,CAAC,4BAA4B,CAAC,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACP,aAAa,CAAC,mBAAmB,CAAC,CAAC;QACrC,CAAC;IACH,CAAC,EAAE,IAAI,CAAC,CAAC;IAET,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,yBAAyB,CACvC,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,MAAM,QAAQ,GAAG,MAAM,0BAA0B,CAAC;gBAChD,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,WAAW;gBACX,eAAe;gBACf,aAAa;aACd,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC;gBAC3C,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,eAAe;gBACf,WAAW;gBACX,aAAa;gBACb,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,cAAc,EAAE,KAAK;aACtB,CAAC,CAAC;YACH,OAAO;gBACL,GAAG,MAAM;gBACT,QAAQ;gBACR,WAAW,EAAE,QAAQ,CAAC,WAAW;aAClC,CAAC;QACJ,CAAC,EACD,EAAE,GAAG,EAAE,QAAQ,EAAE,cAAc,EAAE,CAClC,CAAC;QACF,gCAAgC,EAAE,CAAC;QACnC,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;YAC7C,MAAM,0BAA0B,GAAG,yBAAyB,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;YACzF,IAAI,0BAA0B,KAAK,4BAA4B,EAAE,CAAC;gBAChE,oBAAoB,GAAG,WAAW,CAAC,cAAc,CAAC;gBAClD,gCAAgC,EAAE,CAAC;gBACnC,OAAO;YACT,CAAC;YACD,MAAM,qBAAqB,GAAG,MAAM,wBAAwB,CAC1D,0BAA0B,EAC1B,KAAK,EACL;gBACE,mBAAmB,EAAE,cAAc,CAAC,QAAQ;gBAC5C,iBAAiB,EAAE,cAAc,CAAC,MAAM;aACzC,CACF,CAAC;YACF,IAAI,qBAAqB,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC5C,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;YAC9F,CAAC;YACD,wBAAwB,CAAC,4BAA4B,CAAC,CAAC;YACvD,4BAA4B,GAAG,0BAA0B,CAAC;YAC1D,oBAAoB,GAAG,WAAW,CAAC,cAAc,CAAC;QACpD,CAAC,CAAC,CAAC;QACH,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,OAAO,EAAE;YACnD,oBAAoB,EAAE,6BAA6B;gBACjD,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,OAAO,CAAC,oBAAoB;SACjC,CAAC,CAAC;QACH,MAAM,eAAe,CAAC,GAAG,EAAE,CAAC;IAC9B,CAAC;YAAS,CAAC;QACT,aAAa,CAAC,mBAAmB,CAAC,CAAC;QACnC,wBAAwB,CAAC,4BAA4B,CAAC,CAAC;QACvD,MAAM,cAAc,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,OAAO,EAAE,OAAO,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,IAAgB,EAChB,cAA4D,EAC5D,GAAW;IAEX,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,iBAAiB;QAAE,OAAO,KAAK,CAAC;IACvE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAEvC,MAAM,KAAK,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAChF,MAAM,QAAQ,GAAG,8BAA8B,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IACrE,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,kEAAkE,CAAC,CAAC;QAChF,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACnD,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,OAAO;gBAAE,MAAM;YACpD,MAAM,gBAAgB,CAAC,IAAI,EAAE,cAAc,CAAC,YAAY,EAAE,EAAE,MAAM,CAAC,CAAC;YACpE,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;YAAS,CAAC;QACT,QAAQ,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,8BAA8B,CACrC,cAA4D,EAC5D,GAAW;IAEX,MAAM,WAAW,GAAG,cAAc,CAAC,cAAc,EAAE,CAAC;IACpD,IAAI,CAAC,WAAW;QAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC;IAChE,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,cAAc;SACX,UAAU,EAAE;SACZ,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SAC9B,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAC7C,CAAC;IACF,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAC5B,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,aAAa,EAAE,EAAE,GAAG,CAAC,CAAC;IACxE,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,IAAI,CAAC;YACH,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC;gBACpD,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC1B,IAAI,EAAE;oBAAE,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,2EAA2E;QAC7E,CAAC;IACH,CAAC,CAAC;IACF,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,IAAI,OAAO;YAAE,OAAO;QACpB,OAAO,GAAG,IAAI,CAAC;QACf,IAAI,CAAC;YACH,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC;gBACpD,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC1B,IAAI,CAAC,EAAE,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;oBAAE,SAAS;gBAC1C,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACrB,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBACtC,IAAI,IAAI;oBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,2EAA2E;QAC7E,CAAC;gBAAS,CAAC;YACT,OAAO,GAAG,KAAK,CAAC;QAClB,CAAC;IACH,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACzC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;AAC3D,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/B,OAAO,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1D,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACzE,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,IAAgB,EAChB,SAAiB,EACjB,MAAc;IAEd,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,iBAAiB;QAAE,OAAO;IACjE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,IAAI,GAAG,CAAC,iCAAiC,EAAE,IAAI,CAAC,mBAAmB,CAAC,EACpE;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,iCAAiC,EAAE,IAAI,CAAC,iBAAiB;SAC1D;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,MAAM;YACN,SAAS;YACT,QAAQ,EAAE,aAAa,UAAU,EAAE,EAAE;SACtC,CAAC;KACH,CACF,CAAC;IACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAuB,CAAC;QAC7E,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC;QACjD,OAAO;IACT,CAAC;IACD,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,QAAkB;IAChD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;IAC1C,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,IAAI;YAAE,MAAM;QAChB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,IAAI,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACnC,OAAO,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACpB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACrC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;YACjC,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,MAAM,IAAI,GAAG,KAAK;SACf,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;SAC1C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACnC,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAM5B,CAAC;IACF,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,IAAI,IAAI,EAAE,CAAC;QAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;IACpC,CAAC;SAAM,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACvC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,OAAO,IAAI,YAAY,IAAI,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAGrB;IACC,IAAI,KAAK,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC;IAClC,OAAO,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,WAAW,CAAC,OAAgB;IACnC,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAChD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC;SACnD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;SACxB,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACzE,CAAC,CAAE,KAAiC;QACpC,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,MAAM,IAAI,EAAE,CAAC"}
|
package/dist/config.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export interface SentimentConfig {
|
|
|
10
10
|
maxAggregateRepresentativeItems?: number;
|
|
11
11
|
maxNotableClaims?: number;
|
|
12
12
|
}
|
|
13
|
-
export type RouterMode = "
|
|
13
|
+
export type RouterMode = "llm";
|
|
14
14
|
export type ToolScopeMode = "observe" | "enforce";
|
|
15
15
|
export type PlanningMigrationStatuses = Partial<Record<TaskFamily, PlanningBehaviorMode>>;
|
|
16
16
|
export interface Config {
|
|
@@ -19,13 +19,10 @@ export interface Config {
|
|
|
19
19
|
braveApiKey?: string;
|
|
20
20
|
exaApiKey?: string;
|
|
21
21
|
finnhubApiKey?: string;
|
|
22
|
-
/** Enable adversarial bull/bear debate in comprehensive analysis. Default: true. */
|
|
23
|
-
debate?: boolean;
|
|
24
22
|
/**
|
|
25
|
-
* Intent-router mode.
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* `OPENCANDLE_ROUTER_MODE`.
|
|
23
|
+
* Intent-router mode. The LLM router is the only production routing path;
|
|
24
|
+
* `OPENCANDLE_ROUTER_MODE` accepts only `"llm"` (or unset). The removed
|
|
25
|
+
* `"rules"` value fails startup with migration guidance.
|
|
29
26
|
*/
|
|
30
27
|
routerMode: RouterMode;
|
|
31
28
|
/**
|
|
@@ -60,8 +57,6 @@ export interface OpenCandleFileConfig {
|
|
|
60
57
|
apiKey?: string;
|
|
61
58
|
};
|
|
62
59
|
};
|
|
63
|
-
/** Enable adversarial bull/bear debate in comprehensive analysis. Default: true. */
|
|
64
|
-
debate?: boolean;
|
|
65
60
|
sentiment?: {
|
|
66
61
|
retentionDays?: number;
|
|
67
62
|
defaultSubreddits?: string[];
|