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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export type ApiKeyProviderId = "alpha_vantage" | "fred" | "finnhub" | "brave" | "exa";
|
|
2
2
|
export type ExternalToolProviderId = "twitter" | "reddit";
|
|
3
|
-
export type PublicHttpProviderId = "yahoo";
|
|
3
|
+
export type PublicHttpProviderId = "polymarket" | "tradingview" | "yahoo";
|
|
4
4
|
export type ProviderId = ApiKeyProviderId | ExternalToolProviderId | PublicHttpProviderId;
|
|
5
5
|
export type ProviderCategory = "fundamentals" | "macro" | "news" | "web_search" | "sentiment" | "market";
|
|
6
6
|
export type ProviderTier = "hard" | "soft";
|
|
@@ -139,6 +139,30 @@ export declare const PROVIDERS: readonly [{
|
|
|
139
139
|
readonly fallbackDescription: null;
|
|
140
140
|
readonly snoozeDurationDays: 7;
|
|
141
141
|
readonly instructionsHint: "No account needed; OpenCandle checks public Yahoo Finance reachability";
|
|
142
|
+
}, {
|
|
143
|
+
readonly id: "polymarket";
|
|
144
|
+
readonly kind: "public-http";
|
|
145
|
+
readonly displayName: "Polymarket";
|
|
146
|
+
readonly category: "macro";
|
|
147
|
+
readonly tier: "hard";
|
|
148
|
+
readonly aliases: readonly ["polymarket", "prediction-markets", "event-probabilities"];
|
|
149
|
+
readonly probeUrl: "https://gamma-api.polymarket.com/public-search?q=fed%20rate%20cut&limit=1";
|
|
150
|
+
readonly unlocks: readonly ["market-implied event probabilities", "prediction-market resolution criteria"];
|
|
151
|
+
readonly fallbackDescription: null;
|
|
152
|
+
readonly snoozeDurationDays: 7;
|
|
153
|
+
readonly instructionsHint: "No account needed; OpenCandle checks public Polymarket Gamma reachability";
|
|
154
|
+
}, {
|
|
155
|
+
readonly id: "tradingview";
|
|
156
|
+
readonly kind: "public-http";
|
|
157
|
+
readonly displayName: "TradingView Scanner";
|
|
158
|
+
readonly category: "market";
|
|
159
|
+
readonly tier: "soft";
|
|
160
|
+
readonly aliases: readonly ["tradingview", "tradingview-scanner", "screener"];
|
|
161
|
+
readonly probeUrl: "https://scanner.tradingview.com/america/scan2?label-product=screener-stock";
|
|
162
|
+
readonly unlocks: readonly ["stock screens", "ticker search fallback", "watchlist quote fallback"];
|
|
163
|
+
readonly fallbackDescription: "Core market quote/history tools continue through Yahoo and Alpha Vantage when TradingView scanner is unavailable";
|
|
164
|
+
readonly snoozeDurationDays: 7;
|
|
165
|
+
readonly instructionsHint: "No account needed; OpenCandle checks the public TradingView scanner endpoint";
|
|
142
166
|
}, {
|
|
143
167
|
readonly id: "twitter";
|
|
144
168
|
readonly kind: "external-tool";
|
|
@@ -125,6 +125,32 @@ export const PROVIDERS = [
|
|
|
125
125
|
snoozeDurationDays: 7,
|
|
126
126
|
instructionsHint: "No account needed; OpenCandle checks public Yahoo Finance reachability",
|
|
127
127
|
},
|
|
128
|
+
{
|
|
129
|
+
id: "polymarket",
|
|
130
|
+
kind: "public-http",
|
|
131
|
+
displayName: "Polymarket",
|
|
132
|
+
category: "macro",
|
|
133
|
+
tier: "hard",
|
|
134
|
+
aliases: ["polymarket", "prediction-markets", "event-probabilities"],
|
|
135
|
+
probeUrl: "https://gamma-api.polymarket.com/public-search?q=fed%20rate%20cut&limit=1",
|
|
136
|
+
unlocks: ["market-implied event probabilities", "prediction-market resolution criteria"],
|
|
137
|
+
fallbackDescription: null,
|
|
138
|
+
snoozeDurationDays: 7,
|
|
139
|
+
instructionsHint: "No account needed; OpenCandle checks public Polymarket Gamma reachability",
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
id: "tradingview",
|
|
143
|
+
kind: "public-http",
|
|
144
|
+
displayName: "TradingView Scanner",
|
|
145
|
+
category: "market",
|
|
146
|
+
tier: "soft",
|
|
147
|
+
aliases: ["tradingview", "tradingview-scanner", "screener"],
|
|
148
|
+
probeUrl: "https://scanner.tradingview.com/america/scan2?label-product=screener-stock",
|
|
149
|
+
unlocks: ["stock screens", "ticker search fallback", "watchlist quote fallback"],
|
|
150
|
+
fallbackDescription: "Core market quote/history tools continue through Yahoo and Alpha Vantage when TradingView scanner is unavailable",
|
|
151
|
+
snoozeDurationDays: 7,
|
|
152
|
+
instructionsHint: "No account needed; OpenCandle checks the public TradingView scanner endpoint",
|
|
153
|
+
},
|
|
128
154
|
{
|
|
129
155
|
id: "twitter",
|
|
130
156
|
kind: "external-tool",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/onboarding/providers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../../src/onboarding/providers.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,8 +10,7 @@ import { buildConnectedTag, buildSkippedTag, parseToolTag } from "../onboarding/
|
|
|
10
10
|
import { DISCLAIMER_TEXT } from "../prompts/disclaimer.js";
|
|
11
11
|
import { formatPreflightDropAnnotation, preflightSymbols } from "../prompts/symbol-preflight.js";
|
|
12
12
|
import { buildAssumptionsBlockFromRouter } from "../prompts/workflow-prompts.js";
|
|
13
|
-
import { buildResolvedTurnContext,
|
|
14
|
-
import { disambiguateSymbols } from "../routing/symbol-disambiguator.js";
|
|
13
|
+
import { buildResolvedTurnContext, createPiAiRouterClient, resolveOptionsScreenerSlots, resolvePortfolioSlots, route as routeLlm, } from "../routing/index.js";
|
|
15
14
|
import { SessionCoordinator } from "../runtime/session-coordinator.js";
|
|
16
15
|
import { generateSessionTitle } from "../runtime/session-title.js";
|
|
17
16
|
import { registerAskUserTool } from "../tools/interaction/ask-user.js";
|
|
@@ -21,9 +20,18 @@ export default function openCandleExtension(pi, options) {
|
|
|
21
20
|
const coordinator = new SessionCoordinator();
|
|
22
21
|
// Workflow transforms replace the user's turn with the expanded prompt; this
|
|
23
22
|
// marker lets the GUI render the user's original words instead.
|
|
24
|
-
const markOriginalInput = (original) => {
|
|
23
|
+
const markOriginalInput = (original, ctx) => {
|
|
24
|
+
if (hasUnconsumedOriginalInputMarker(ctx))
|
|
25
|
+
return;
|
|
25
26
|
pi.appendEntry("opencandle-user-input", { original });
|
|
26
27
|
};
|
|
28
|
+
const appendComprehensiveAnalysisWorkflowEntry = (symbol, definition) => {
|
|
29
|
+
pi.appendEntry("opencandle-workflow", {
|
|
30
|
+
workflow: "comprehensive_analysis",
|
|
31
|
+
resolvedSlots: { symbol },
|
|
32
|
+
analystsTotal: definition.steps.filter((step) => step.stepType.startsWith("analyst_")).length,
|
|
33
|
+
});
|
|
34
|
+
};
|
|
27
35
|
// Credential-interception state. Lifetime:
|
|
28
36
|
// `sessionPromptedSet` — cleared on session_start, persists across turns
|
|
29
37
|
// within a session so users don't get re-prompted after picking
|
|
@@ -60,9 +68,8 @@ export default function openCandleExtension(pi, options) {
|
|
|
60
68
|
ctx.ui.notify("Usage: /analyze <ticker>", "warning");
|
|
61
69
|
return;
|
|
62
70
|
}
|
|
63
|
-
const definition = buildComprehensiveAnalysisDefinition(symbol
|
|
64
|
-
|
|
65
|
-
});
|
|
71
|
+
const definition = buildComprehensiveAnalysisDefinition(symbol);
|
|
72
|
+
appendComprehensiveAnalysisWorkflowEntry(symbol, definition);
|
|
66
73
|
coordinator.executeWorkflow(pi, definition, ctx);
|
|
67
74
|
},
|
|
68
75
|
});
|
|
@@ -559,208 +566,27 @@ export default function openCandleExtension(pi, options) {
|
|
|
559
566
|
}
|
|
560
567
|
return undefined;
|
|
561
568
|
});
|
|
562
|
-
// Input handling —
|
|
569
|
+
// Input handling — the LLM router is the single production routing path.
|
|
563
570
|
pi.on("input", async (event, ctx) => {
|
|
564
571
|
if (event.source === "extension")
|
|
565
572
|
return;
|
|
566
573
|
coordinator.clearTickerValidationCache();
|
|
567
|
-
// Check for comprehensive analysis pattern
|
|
574
|
+
// Check for comprehensive analysis pattern before routing.
|
|
568
575
|
const analysis = isAnalysisRequest(event.text);
|
|
569
576
|
if (analysis.match && analysis.symbol) {
|
|
570
|
-
const definition = buildComprehensiveAnalysisDefinition(analysis.symbol
|
|
571
|
-
|
|
572
|
-
});
|
|
573
|
-
const prompt = coordinator.transformWorkflowInput(pi, definition, ctx);
|
|
574
|
-
if (prompt)
|
|
575
|
-
markOriginalInput(event.text);
|
|
576
|
-
return prompt ? { action: "transform", text: prompt } : { action: "handled" };
|
|
577
|
-
}
|
|
578
|
-
const mode = getConfig().routerMode;
|
|
579
|
-
if (mode === "llm") {
|
|
580
|
-
const dispatched = await handleLlmRouterTurn(event.text, ctx);
|
|
581
|
-
// Dispatched a workflow → the original user turn is now represented by
|
|
582
|
-
// the workflow's queued prompts; tell Pi not to also forward it.
|
|
583
|
-
// Fallback path (no dispatch) → let Pi pass the user turn through to the
|
|
584
|
-
// main agent, which will run under the router-supplied fallback context.
|
|
585
|
-
return dispatched || undefined;
|
|
586
|
-
}
|
|
587
|
-
// --- explicit legacy rules mode (`OPENCANDLE_ROUTER_MODE=rules`) ---
|
|
588
|
-
// Extract and persist user preferences (legacy regex path)
|
|
589
|
-
coordinator.extractAndStorePreferences(event.text);
|
|
590
|
-
const storage = coordinator.getStorage();
|
|
591
|
-
const workflowPrefs = storage?.getWorkflowPreferences("global") ?? {};
|
|
592
|
-
// Classify intent
|
|
593
|
-
let classification = classifyWithLegacyRules(event.text);
|
|
594
|
-
const ruleModeDisambiguation = disambiguateRulesModeSymbols(event.text, classification.entities.symbols);
|
|
595
|
-
appendSymbolDropEntries(ruleModeDisambiguation.dropped, "rules");
|
|
596
|
-
classification = {
|
|
597
|
-
...classification,
|
|
598
|
-
entities: {
|
|
599
|
-
...classification.entities,
|
|
600
|
-
symbols: ruleModeDisambiguation.kept,
|
|
601
|
-
},
|
|
602
|
-
};
|
|
603
|
-
if (isComparePrompt(event.text) &&
|
|
604
|
-
ruleModeDisambiguation.dropped.length > 0 &&
|
|
605
|
-
classification.entities.symbols.length < 2) {
|
|
606
|
-
pi.appendEntry("opencandle-workflow-aborted", {
|
|
607
|
-
reason: "symbol-disambiguation-insufficient-symbols",
|
|
608
|
-
dropped: ruleModeDisambiguation.dropped,
|
|
609
|
-
validSymbols: classification.entities.symbols,
|
|
610
|
-
});
|
|
611
|
-
const base = coordinator.buildRouterContextBase(ctx.sessionManager);
|
|
612
|
-
const output = {
|
|
613
|
-
routeKind: "clarification",
|
|
614
|
-
route: "fallback",
|
|
615
|
-
workflow: "compare_assets",
|
|
616
|
-
entities: classification.entities,
|
|
617
|
-
slots: {},
|
|
618
|
-
preference_updates: [],
|
|
619
|
-
missing_required: ["symbols"],
|
|
620
|
-
tool_bundles: ["clarification"],
|
|
621
|
-
diagnostics: ruleModeDisambiguation.dropped.map((drop) => ({
|
|
622
|
-
code: "symbol_dropped",
|
|
623
|
-
message: `${drop.token} dropped: ${drop.reason}`,
|
|
624
|
-
details: {
|
|
625
|
-
token: drop.token,
|
|
626
|
-
reason: drop.reason,
|
|
627
|
-
signalsChecked: drop.signalsChecked,
|
|
628
|
-
source: "rules",
|
|
629
|
-
},
|
|
630
|
-
})),
|
|
631
|
-
reasoning: "rules-mode acronym disambiguation left fewer than two symbols for comparison",
|
|
632
|
-
};
|
|
633
|
-
const resolvedTurnContext = buildResolvedTurnContext({ text: event.text, ...base }, output, {
|
|
634
|
-
availableToolNames: safeGetAllToolNames(),
|
|
635
|
-
planning: {
|
|
636
|
-
migrationStatuses: getConfig().planningMigrationStatuses,
|
|
637
|
-
},
|
|
638
|
-
});
|
|
639
|
-
coordinator.setPendingResolvedTurnContext({
|
|
640
|
-
...resolvedTurnContext,
|
|
641
|
-
diagnostics: [
|
|
642
|
-
...resolvedTurnContext.diagnostics,
|
|
643
|
-
{
|
|
644
|
-
code: "compare_workflow_aborted",
|
|
645
|
-
message: "compare workflow needs at least two validated symbols after acronym disambiguation",
|
|
646
|
-
},
|
|
647
|
-
],
|
|
648
|
-
});
|
|
649
|
-
coordinator.setPendingFallbackContext({
|
|
650
|
-
assumptionsBlock: [
|
|
651
|
-
"Assumptions Context:",
|
|
652
|
-
classification.entities.symbols.length > 0
|
|
653
|
-
? ` valid symbols: ${classification.entities.symbols.join(", ")} (user)`
|
|
654
|
-
: " valid symbols: (none)",
|
|
655
|
-
` dropped ambiguous ticker-like tokens: ${ruleModeDisambiguation.dropped.map((d) => d.token).join(", ")} (no positive ticker signal)`,
|
|
656
|
-
].join("\n"),
|
|
657
|
-
missingRequired: ["symbols"],
|
|
658
|
-
extraContext: "Dropped ambiguous ticker-like tokens: " +
|
|
659
|
-
`${ruleModeDisambiguation.dropped.map((d) => d.token).join(", ")}. ` +
|
|
660
|
-
"Ask the user which ticker symbols they want compared before calling comparison tools.",
|
|
661
|
-
});
|
|
662
|
-
applyRouteToolScope(resolvedTurnContext);
|
|
663
|
-
return undefined;
|
|
664
|
-
}
|
|
665
|
-
if (classification.workflow === "portfolio_builder") {
|
|
666
|
-
const resolution = resolvePortfolioSlots(classification.entities, workflowPrefs);
|
|
667
|
-
coordinator.recordWorkflowRun("portfolio_builder", classification.entities, resolution.resolved, resolution.defaultsUsed);
|
|
668
|
-
pi.appendEntry("opencandle-workflow", {
|
|
669
|
-
workflow: "portfolio_builder",
|
|
670
|
-
entities: classification.entities,
|
|
671
|
-
resolved: resolution.resolved,
|
|
672
|
-
});
|
|
673
|
-
const definition = buildPortfolioWorkflowDefinition(resolution);
|
|
674
|
-
const prompt = coordinator.transformWorkflowInput(pi, definition, ctx);
|
|
675
|
-
if (prompt)
|
|
676
|
-
markOriginalInput(event.text);
|
|
677
|
-
return prompt ? { action: "transform", text: prompt } : { action: "handled" };
|
|
678
|
-
}
|
|
679
|
-
if (classification.workflow === "options_screener") {
|
|
680
|
-
const resolution = resolveOptionsScreenerSlots(classification.entities, workflowPrefs);
|
|
681
|
-
if (resolution.missingRequired.length === 0) {
|
|
682
|
-
coordinator.recordWorkflowRun("options_screener", classification.entities, resolution.resolved, resolution.defaultsUsed);
|
|
683
|
-
pi.appendEntry("opencandle-workflow", {
|
|
684
|
-
workflow: "options_screener",
|
|
685
|
-
entities: classification.entities,
|
|
686
|
-
resolved: resolution.resolved,
|
|
687
|
-
});
|
|
688
|
-
const definition = buildOptionsScreenerWorkflowDefinition(resolution);
|
|
689
|
-
const prompt = coordinator.transformWorkflowInput(pi, definition, ctx);
|
|
690
|
-
if (prompt)
|
|
691
|
-
markOriginalInput(event.text);
|
|
692
|
-
return prompt ? { action: "transform", text: prompt } : { action: "handled" };
|
|
693
|
-
}
|
|
694
|
-
}
|
|
695
|
-
if (classification.workflow === "compare_assets" &&
|
|
696
|
-
classification.entities.symbols.length >= 2) {
|
|
697
|
-
const resolution = {
|
|
698
|
-
resolved: {
|
|
699
|
-
symbols: classification.entities.symbols,
|
|
700
|
-
metrics: classification.entities.compareMetrics,
|
|
701
|
-
timeHorizon: classification.entities.timeHorizon,
|
|
702
|
-
budget: classification.entities.budget,
|
|
703
|
-
assetScope: classification.entities.assetScope,
|
|
704
|
-
},
|
|
705
|
-
sources: {
|
|
706
|
-
symbols: "user",
|
|
707
|
-
...(classification.entities.timeHorizon ? { timeHorizon: "user" } : {}),
|
|
708
|
-
...(classification.entities.compareMetrics ? { metrics: "user" } : {}),
|
|
709
|
-
...(classification.entities.budget !== undefined ? { budget: "user" } : {}),
|
|
710
|
-
...(classification.entities.assetScope ? { assetScope: "user" } : {}),
|
|
711
|
-
},
|
|
712
|
-
defaultsUsed: [],
|
|
713
|
-
missingRequired: [],
|
|
714
|
-
};
|
|
715
|
-
coordinator.recordWorkflowRun("compare_assets", classification.entities, resolution.resolved, resolution.defaultsUsed);
|
|
716
|
-
pi.appendEntry("opencandle-workflow", {
|
|
717
|
-
workflow: "compare_assets",
|
|
718
|
-
symbols: classification.entities.symbols,
|
|
719
|
-
});
|
|
720
|
-
const preflight = await preflightCompareResolution(resolution);
|
|
721
|
-
if (!preflight) {
|
|
722
|
-
coordinator.recordWorkflowRun("fallback", classification.entities, resolution.resolved, [], "clarification");
|
|
723
|
-
coordinator.setPendingFallbackContext({
|
|
724
|
-
assumptionsBlock: [
|
|
725
|
-
"Assumptions Context:",
|
|
726
|
-
` original symbols: ${classification.entities.symbols.join(", ")} (user)`,
|
|
727
|
-
].join("\n"),
|
|
728
|
-
missingRequired: ["symbols"],
|
|
729
|
-
extraContext: "Compare workflow aborted because ticker preflight left fewer than two valid symbols. Ask the user to clarify the intended tickers before calling comparison tools.",
|
|
730
|
-
});
|
|
731
|
-
return undefined;
|
|
732
|
-
}
|
|
733
|
-
const definition = buildCompareAssetsWorkflowDefinition(preflight.resolution);
|
|
734
|
-
applyPreflightAnnotation(definition, preflight.dropped);
|
|
577
|
+
const definition = buildComprehensiveAnalysisDefinition(analysis.symbol);
|
|
578
|
+
appendComprehensiveAnalysisWorkflowEntry(analysis.symbol, definition);
|
|
735
579
|
const prompt = coordinator.transformWorkflowInput(pi, definition, ctx);
|
|
736
580
|
if (prompt)
|
|
737
|
-
markOriginalInput(event.text);
|
|
581
|
+
markOriginalInput(event.text, ctx);
|
|
738
582
|
return prompt ? { action: "transform", text: prompt } : { action: "handled" };
|
|
739
583
|
}
|
|
740
|
-
|
|
741
|
-
//
|
|
742
|
-
//
|
|
743
|
-
//
|
|
744
|
-
//
|
|
745
|
-
|
|
746
|
-
classification.entities.symbols.length > 0 ||
|
|
747
|
-
hasFinanceSignals(event.text);
|
|
748
|
-
if (isFinanceFallback) {
|
|
749
|
-
coordinator.recordWorkflowRun("fallback", classification.entities, {}, [], "agent_task");
|
|
750
|
-
coordinator.setPendingFallbackContext({
|
|
751
|
-
assumptionsBlock: "",
|
|
752
|
-
missingRequired: [],
|
|
753
|
-
extraContext: classification.entities.symbols.length > 0
|
|
754
|
-
? `Rules-router extracted symbols: ${classification.entities.symbols.join(", ")}.`
|
|
755
|
-
: undefined,
|
|
756
|
-
});
|
|
757
|
-
pi.appendEntry("opencandle-fallback-context", {
|
|
758
|
-
mode: "rules",
|
|
759
|
-
classifiedWorkflow: classification.workflow,
|
|
760
|
-
symbols: classification.entities.symbols,
|
|
761
|
-
});
|
|
762
|
-
}
|
|
763
|
-
return undefined;
|
|
584
|
+
const dispatched = await handleLlmRouterTurn(event.text, ctx);
|
|
585
|
+
// Dispatched a workflow → the original user turn is now represented by
|
|
586
|
+
// the workflow's queued prompts; tell Pi not to also forward it.
|
|
587
|
+
// Fallback path (no dispatch) → let Pi pass the user turn through to the
|
|
588
|
+
// main agent, which will run under the router-supplied fallback context.
|
|
589
|
+
return dispatched || undefined;
|
|
764
590
|
});
|
|
765
591
|
/**
|
|
766
592
|
* LLM-mode input handler. In this mode `classifyIntent` and
|
|
@@ -878,7 +704,7 @@ export default function openCandleExtension(pi, options) {
|
|
|
878
704
|
const definition = buildPortfolioWorkflowDefinition(resolution);
|
|
879
705
|
const prompt = coordinator.transformWorkflowInput(pi, definition, ctx);
|
|
880
706
|
if (prompt)
|
|
881
|
-
markOriginalInput(originalText);
|
|
707
|
+
markOriginalInput(originalText, ctx);
|
|
882
708
|
return prompt ? { action: "transform", text: prompt } : false;
|
|
883
709
|
}
|
|
884
710
|
if (workflow === "options_screener") {
|
|
@@ -895,7 +721,7 @@ export default function openCandleExtension(pi, options) {
|
|
|
895
721
|
const definition = buildOptionsScreenerWorkflowDefinition(resolution);
|
|
896
722
|
const prompt = coordinator.transformWorkflowInput(pi, definition, ctx);
|
|
897
723
|
if (prompt)
|
|
898
|
-
markOriginalInput(originalText);
|
|
724
|
+
markOriginalInput(originalText, ctx);
|
|
899
725
|
return prompt ? { action: "transform", text: prompt } : false;
|
|
900
726
|
}
|
|
901
727
|
// Missing required symbol — treat as fallback with ask_user directive.
|
|
@@ -941,7 +767,7 @@ export default function openCandleExtension(pi, options) {
|
|
|
941
767
|
applyPreflightAnnotation(definition, preflight.dropped);
|
|
942
768
|
const prompt = coordinator.transformWorkflowInput(pi, definition, ctx);
|
|
943
769
|
if (prompt)
|
|
944
|
-
markOriginalInput(originalText);
|
|
770
|
+
markOriginalInput(originalText, ctx);
|
|
945
771
|
return prompt ? { action: "transform", text: prompt } : false;
|
|
946
772
|
}
|
|
947
773
|
// single_asset_analysis / watchlist / general_qa + any workflow with
|
|
@@ -982,29 +808,6 @@ export default function openCandleExtension(pi, options) {
|
|
|
982
808
|
});
|
|
983
809
|
}
|
|
984
810
|
}
|
|
985
|
-
function disambiguateRulesModeSymbols(text, extractedSymbols) {
|
|
986
|
-
const candidates = mergeSymbols(extractedSymbols, rawTickerLikeTokens(text));
|
|
987
|
-
const disambiguated = disambiguateSymbols(candidates, text);
|
|
988
|
-
return {
|
|
989
|
-
kept: disambiguated.kept.filter((symbol) => extractedSymbols.includes(symbol)),
|
|
990
|
-
dropped: disambiguated.dropped,
|
|
991
|
-
};
|
|
992
|
-
}
|
|
993
|
-
function rawTickerLikeTokens(text) {
|
|
994
|
-
const tokens = [];
|
|
995
|
-
for (const match of text.matchAll(/\$?([A-Za-z]{1,5})\b/g)) {
|
|
996
|
-
const raw = match[1];
|
|
997
|
-
if (raw !== raw.toUpperCase())
|
|
998
|
-
continue;
|
|
999
|
-
const token = raw.toUpperCase();
|
|
1000
|
-
if (!tokens.includes(token))
|
|
1001
|
-
tokens.push(token);
|
|
1002
|
-
}
|
|
1003
|
-
return tokens;
|
|
1004
|
-
}
|
|
1005
|
-
function isComparePrompt(text) {
|
|
1006
|
-
return /\b(?:compare|vs\.?|versus|which\s+is\s+better)\b/i.test(text);
|
|
1007
|
-
}
|
|
1008
811
|
async function preflightCompareResolution(resolution) {
|
|
1009
812
|
const result = await preflightSymbols(resolution.resolved.symbols, {
|
|
1010
813
|
cache: coordinator.getTickerValidationCache(),
|
|
@@ -1180,8 +983,8 @@ export default function openCandleExtension(pi, options) {
|
|
|
1180
983
|
}
|
|
1181
984
|
function resolveRouterLlmClient(ctx) {
|
|
1182
985
|
// `ctx.model` is the currently selected pi-ai model. When unset (no auth
|
|
1183
|
-
// configured yet), we skip the router and the main agent
|
|
1184
|
-
//
|
|
986
|
+
// configured yet), we skip the router and the main agent runs with its
|
|
987
|
+
// default unrouted flow for the turn.
|
|
1185
988
|
const model = ctx.model;
|
|
1186
989
|
if (!model)
|
|
1187
990
|
return null;
|
|
@@ -1198,6 +1001,34 @@ export default function openCandleExtension(pi, options) {
|
|
|
1198
1001
|
};
|
|
1199
1002
|
});
|
|
1200
1003
|
}
|
|
1004
|
+
function hasUnconsumedOriginalInputMarker(ctx) {
|
|
1005
|
+
const manager = ctx?.sessionManager;
|
|
1006
|
+
const entries = typeof manager?.getBranch === "function"
|
|
1007
|
+
? manager.getBranch()
|
|
1008
|
+
: typeof manager?.getEntries === "function"
|
|
1009
|
+
? manager.getEntries()
|
|
1010
|
+
: [];
|
|
1011
|
+
let markerAfterLastUser = false;
|
|
1012
|
+
for (const entry of entries) {
|
|
1013
|
+
if (!isSessionEntryRecord(entry))
|
|
1014
|
+
continue;
|
|
1015
|
+
if (entry.type === "message" && entry.message?.role === "user") {
|
|
1016
|
+
markerAfterLastUser = false;
|
|
1017
|
+
continue;
|
|
1018
|
+
}
|
|
1019
|
+
if (entry.type === "custom" && entry.customType === "opencandle-user-input") {
|
|
1020
|
+
markerAfterLastUser = true;
|
|
1021
|
+
continue;
|
|
1022
|
+
}
|
|
1023
|
+
if (markerAfterLastUser) {
|
|
1024
|
+
markerAfterLastUser = false;
|
|
1025
|
+
}
|
|
1026
|
+
}
|
|
1027
|
+
return markerAfterLastUser;
|
|
1028
|
+
}
|
|
1029
|
+
function isSessionEntryRecord(entry) {
|
|
1030
|
+
return typeof entry === "object" && entry !== null;
|
|
1031
|
+
}
|
|
1201
1032
|
/** Concatenate text from a Pi message `content` (plain string or block array). */
|
|
1202
1033
|
function extractMessageText(content) {
|
|
1203
1034
|
if (typeof content === "string")
|