opencandle 0.9.0 → 0.11.0

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 (98) hide show
  1. package/README.md +7 -5
  2. package/dist/analysts/orchestrator.d.ts +1 -4
  3. package/dist/analysts/orchestrator.js +15 -44
  4. package/dist/analysts/orchestrator.js.map +1 -1
  5. package/dist/cli-main.js +242 -9
  6. package/dist/cli-main.js.map +1 -1
  7. package/dist/config.d.ts +4 -9
  8. package/dist/config.js +7 -10
  9. package/dist/config.js.map +1 -1
  10. package/dist/market-state/daily-report.d.ts +1 -1
  11. package/dist/market-state/daily-report.js +5 -16
  12. package/dist/market-state/daily-report.js.map +1 -1
  13. package/dist/market-state/service.d.ts +0 -35
  14. package/dist/market-state/service.js +0 -63
  15. package/dist/market-state/service.js.map +1 -1
  16. package/dist/memory/sqlite.js +20 -19
  17. package/dist/memory/sqlite.js.map +1 -1
  18. package/dist/pi/opencandle-extension.js +13 -221
  19. package/dist/pi/opencandle-extension.js.map +1 -1
  20. package/dist/pi/session-action-dedupe.d.ts +6 -0
  21. package/dist/pi/session-action-dedupe.js +126 -0
  22. package/dist/pi/session-action-dedupe.js.map +1 -0
  23. package/dist/pi/session-writer-lock.d.ts +26 -2
  24. package/dist/pi/session-writer-lock.js +230 -18
  25. package/dist/pi/session-writer-lock.js.map +1 -1
  26. package/dist/pi/setup.js +5 -5
  27. package/dist/pi/setup.js.map +1 -1
  28. package/dist/pi/tui-session-coordinator.d.ts +15 -0
  29. package/dist/pi/tui-session-coordinator.js +283 -0
  30. package/dist/pi/tui-session-coordinator.js.map +1 -0
  31. package/dist/prompts/context-builder.js +1 -1
  32. package/dist/prompts/policy-cards.js +1 -1
  33. package/dist/prompts/policy-cards.js.map +1 -1
  34. package/dist/routing/classify-intent.js +4 -5
  35. package/dist/routing/classify-intent.js.map +1 -1
  36. package/dist/routing/route-manifest.js +0 -1
  37. package/dist/routing/route-manifest.js.map +1 -1
  38. package/dist/routing/router-prompt.js +1 -1
  39. package/dist/routing/router.js +35 -4
  40. package/dist/routing/router.js.map +1 -1
  41. package/dist/runtime/session-coordinator.js +2 -13
  42. package/dist/runtime/session-coordinator.js.map +1 -1
  43. package/dist/system-prompt.js +1 -1
  44. package/dist/tools/fundamentals/dcf.d.ts +1 -1
  45. package/dist/tools/fundamentals/dcf.js +49 -6
  46. package/dist/tools/fundamentals/dcf.js.map +1 -1
  47. package/dist/tools/index.d.ts +0 -1
  48. package/dist/tools/index.js +0 -3
  49. package/dist/tools/index.js.map +1 -1
  50. package/dist/tools/portfolio/daily-report.js +10 -4
  51. package/dist/tools/portfolio/daily-report.js.map +1 -1
  52. package/dist/tools/technical/backtest.d.ts +23 -5
  53. package/dist/tools/technical/backtest.js +131 -94
  54. package/dist/tools/technical/backtest.js.map +1 -1
  55. package/gui/server/http-routes.ts +395 -19
  56. package/gui/server/invoke-tool.ts +164 -16
  57. package/gui/server/local-session-coordinator.ts +97 -0
  58. package/gui/server/market-state-api.ts +1 -43
  59. package/gui/server/server.ts +51 -6
  60. package/gui/server/session-actions.ts +117 -8
  61. package/gui/server/tool-metadata.ts +3 -1
  62. package/gui/server/ws-hub.ts +61 -6
  63. package/gui/web/dist/assets/CatalogOverlay-ChRTKNlf.js +1 -0
  64. package/gui/web/dist/assets/index-BzyqyVnd.css +2 -0
  65. package/gui/web/dist/assets/index-DvMjkOP9.js +65 -0
  66. package/gui/web/dist/index.html +2 -2
  67. package/package.json +8 -5
  68. package/src/analysts/orchestrator.ts +15 -56
  69. package/src/cli-main.ts +253 -13
  70. package/src/config.ts +12 -20
  71. package/src/market-state/daily-report.ts +6 -16
  72. package/src/market-state/service.ts +0 -136
  73. package/src/memory/sqlite.ts +23 -19
  74. package/src/pi/opencandle-extension.ts +12 -265
  75. package/src/pi/session-action-dedupe.ts +155 -0
  76. package/src/pi/session-writer-lock.ts +290 -20
  77. package/src/pi/setup.ts +6 -6
  78. package/src/pi/tui-session-coordinator.ts +351 -0
  79. package/src/prompts/context-builder.ts +1 -1
  80. package/src/prompts/policy-cards.ts +1 -1
  81. package/src/routing/classify-intent.ts +4 -5
  82. package/src/routing/route-manifest.ts +0 -1
  83. package/src/routing/router-prompt.ts +1 -1
  84. package/src/routing/router.ts +39 -3
  85. package/src/runtime/session-coordinator.ts +2 -17
  86. package/src/system-prompt.ts +1 -1
  87. package/src/tools/AGENTS.md +1 -1
  88. package/src/tools/fundamentals/dcf.ts +57 -7
  89. package/src/tools/index.ts +0 -3
  90. package/src/tools/portfolio/daily-report.ts +10 -4
  91. package/src/tools/technical/backtest.ts +167 -108
  92. package/dist/tools/portfolio/predictions.d.ts +0 -55
  93. package/dist/tools/portfolio/predictions.js +0 -422
  94. package/dist/tools/portfolio/predictions.js.map +0 -1
  95. package/gui/web/dist/assets/CatalogOverlay-DcTXLc7u.js +0 -1
  96. package/gui/web/dist/assets/index-DdMnIvZ7.css +0 -2
  97. package/gui/web/dist/assets/index-YlMaahAS.js +0 -65
  98. package/src/tools/portfolio/predictions.ts +0 -553
@@ -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, classifyWithLegacyRules, createPiAiRouterClient, hasFinanceSignals, resolveOptionsScreenerSlots, resolvePortfolioSlots, route as routeLlm, } from "../routing/index.js";
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";
@@ -60,9 +59,7 @@ export default function openCandleExtension(pi, options) {
60
59
  ctx.ui.notify("Usage: /analyze <ticker>", "warning");
61
60
  return;
62
61
  }
63
- const definition = buildComprehensiveAnalysisDefinition(symbol, {
64
- debate: getConfig().debate,
65
- });
62
+ const definition = buildComprehensiveAnalysisDefinition(symbol);
66
63
  coordinator.executeWorkflow(pi, definition, ctx);
67
64
  },
68
65
  });
@@ -559,208 +556,26 @@ export default function openCandleExtension(pi, options) {
559
556
  }
560
557
  return undefined;
561
558
  });
562
- // Input handling — branches on OPENCANDLE_ROUTER_MODE.
559
+ // Input handling — the LLM router is the single production routing path.
563
560
  pi.on("input", async (event, ctx) => {
564
561
  if (event.source === "extension")
565
562
  return;
566
563
  coordinator.clearTickerValidationCache();
567
- // Check for comprehensive analysis pattern same in both modes.
564
+ // Check for comprehensive analysis pattern before routing.
568
565
  const analysis = isAnalysisRequest(event.text);
569
566
  if (analysis.match && analysis.symbol) {
570
- const definition = buildComprehensiveAnalysisDefinition(analysis.symbol, {
571
- debate: getConfig().debate,
572
- });
567
+ const definition = buildComprehensiveAnalysisDefinition(analysis.symbol);
573
568
  const prompt = coordinator.transformWorkflowInput(pi, definition, ctx);
574
569
  if (prompt)
575
570
  markOriginalInput(event.text);
576
571
  return prompt ? { action: "transform", text: prompt } : { action: "handled" };
577
572
  }
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);
735
- const prompt = coordinator.transformWorkflowInput(pi, definition, ctx);
736
- if (prompt)
737
- markOriginalInput(event.text);
738
- return prompt ? { action: "transform", text: prompt } : { action: "handled" };
739
- }
740
- // Rules-mode finance fallback: no workflow dispatched, but the turn is
741
- // finance-shaped (classified finance intent, extracted symbols, or finance
742
- // vocabulary). Record the fallback turn and stash a fallback context so
743
- // the system prompt carries saved market state for this turn; non-finance
744
- // prompts stay untouched.
745
- const isFinanceFallback = classification.workflow !== "unclassified" ||
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;
573
+ const dispatched = await handleLlmRouterTurn(event.text, ctx);
574
+ // Dispatched a workflow → the original user turn is now represented by
575
+ // the workflow's queued prompts; tell Pi not to also forward it.
576
+ // Fallback path (no dispatch) let Pi pass the user turn through to the
577
+ // main agent, which will run under the router-supplied fallback context.
578
+ return dispatched || undefined;
764
579
  });
765
580
  /**
766
581
  * LLM-mode input handler. In this mode `classifyIntent` and
@@ -982,29 +797,6 @@ export default function openCandleExtension(pi, options) {
982
797
  });
983
798
  }
984
799
  }
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
800
  async function preflightCompareResolution(resolution) {
1009
801
  const result = await preflightSymbols(resolution.resolved.symbols, {
1010
802
  cache: coordinator.getTickerValidationCache(),
@@ -1180,8 +972,8 @@ export default function openCandleExtension(pi, options) {
1180
972
  }
1181
973
  function resolveRouterLlmClient(ctx) {
1182
974
  // `ctx.model` is the currently selected pi-ai model. When unset (no auth
1183
- // configured yet), we skip the router and the main agent will run with
1184
- // its default unrouted flow (legacy rules path is the safer default).
975
+ // configured yet), we skip the router and the main agent runs with its
976
+ // default unrouted flow for the turn.
1185
977
  const model = ctx.model;
1186
978
  if (!model)
1187
979
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"opencandle-extension.js","sourceRoot":"","sources":["../../src/pi/opencandle-extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opencandle-extension.js","sourceRoot":"","sources":["../../src/pi/opencandle-extension.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { type SessionLockScopeSource } from "./session-writer-lock.js";
2
+ export declare function hasAcceptedSessionAction(sessionManager: SessionLockScopeSource, actionId: string): boolean;
3
+ export declare function hasPendingSessionAction(sessionManager: SessionLockScopeSource, actionId: string): boolean;
4
+ export declare function recordPendingSessionAction(sessionManager: SessionLockScopeSource, actionId: string): void;
5
+ export declare function clearPendingSessionAction(sessionManager: SessionLockScopeSource, actionId: string): void;
6
+ export declare function recordAcceptedSessionAction(sessionManager: SessionLockScopeSource, actionId: string): void;
@@ -0,0 +1,126 @@
1
+ import { mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
+ import { dirname, join } from "node:path";
3
+ import { writerLockScopeForSession } from "./session-writer-lock.js";
4
+ const pendingSessionActionTtlMs = 2 * 60 * 1000;
5
+ export function hasAcceptedSessionAction(sessionManager, actionId) {
6
+ const normalizedActionId = actionId.trim();
7
+ if (!normalizedActionId)
8
+ return false;
9
+ return readAcceptedActionStore(sessionManager).acceptedActionIds.includes(normalizedActionId);
10
+ }
11
+ export function hasPendingSessionAction(sessionManager, actionId) {
12
+ const normalizedActionId = actionId.trim();
13
+ if (!normalizedActionId)
14
+ return false;
15
+ return readAcceptedActionStore(sessionManager).pendingActions.some((record) => record.id === normalizedActionId);
16
+ }
17
+ export function recordPendingSessionAction(sessionManager, actionId) {
18
+ const normalizedActionId = actionId.trim();
19
+ if (!normalizedActionId || hasAcceptedSessionAction(sessionManager, normalizedActionId))
20
+ return;
21
+ const storePath = acceptedActionStorePath(sessionManager);
22
+ if (!storePath)
23
+ return;
24
+ const store = readAcceptedActionStore(sessionManager);
25
+ if (store.pendingActions.some((record) => record.id === normalizedActionId))
26
+ return;
27
+ writeAcceptedActionStore(storePath, {
28
+ acceptedActionIds: store.acceptedActionIds,
29
+ pendingActions: [
30
+ ...store.pendingActions.slice(-499),
31
+ { id: normalizedActionId, pendingAtMs: Date.now() },
32
+ ],
33
+ });
34
+ }
35
+ export function clearPendingSessionAction(sessionManager, actionId) {
36
+ const normalizedActionId = actionId.trim();
37
+ if (!normalizedActionId)
38
+ return;
39
+ const storePath = acceptedActionStorePath(sessionManager);
40
+ if (!storePath)
41
+ return;
42
+ const store = readAcceptedActionStore(sessionManager);
43
+ if (!store.pendingActions.some((record) => record.id === normalizedActionId))
44
+ return;
45
+ writeAcceptedActionStore(storePath, {
46
+ acceptedActionIds: store.acceptedActionIds,
47
+ pendingActions: store.pendingActions.filter((record) => record.id !== normalizedActionId),
48
+ });
49
+ }
50
+ export function recordAcceptedSessionAction(sessionManager, actionId) {
51
+ const normalizedActionId = actionId.trim();
52
+ if (!normalizedActionId)
53
+ return;
54
+ const storePath = acceptedActionStorePath(sessionManager);
55
+ if (!storePath)
56
+ return;
57
+ const store = readAcceptedActionStore(sessionManager);
58
+ if (store.acceptedActionIds.includes(normalizedActionId))
59
+ return;
60
+ writeAcceptedActionStore(storePath, {
61
+ acceptedActionIds: [...store.acceptedActionIds.slice(-499), normalizedActionId],
62
+ pendingActions: store.pendingActions.filter((record) => record.id !== normalizedActionId),
63
+ });
64
+ }
65
+ function readAcceptedActionStore(sessionManager) {
66
+ try {
67
+ const storePath = acceptedActionStorePath(sessionManager);
68
+ if (!storePath)
69
+ return { acceptedActionIds: [], pendingActions: [] };
70
+ const parsed = JSON.parse(readFileSync(storePath, "utf8"));
71
+ const pendingRecords = readPendingActionRecords(parsed.pendingActionIds);
72
+ const acceptedActionIds = Array.isArray(parsed.acceptedActionIds)
73
+ ? parsed.acceptedActionIds.filter((id) => typeof id === "string")
74
+ : [];
75
+ return {
76
+ acceptedActionIds,
77
+ pendingActions: pendingRecords.activeRecords,
78
+ };
79
+ }
80
+ catch {
81
+ return { acceptedActionIds: [], pendingActions: [] };
82
+ }
83
+ }
84
+ function writeAcceptedActionStore(storePath, store) {
85
+ mkdirSync(dirname(storePath), { recursive: true });
86
+ writeFileSync(storePath, JSON.stringify({
87
+ acceptedActionIds: store.acceptedActionIds,
88
+ pendingActionIds: store.pendingActions,
89
+ }, null, 2), { mode: 0o600 });
90
+ }
91
+ function readPendingActionRecords(value) {
92
+ if (!Array.isArray(value))
93
+ return { activeRecords: [] };
94
+ const now = Date.now();
95
+ const activeRecords = [];
96
+ for (const entry of value) {
97
+ const record = (() => {
98
+ if (typeof entry === "string")
99
+ return null;
100
+ if (!entry || typeof entry !== "object")
101
+ return null;
102
+ const pending = entry;
103
+ if (typeof pending.id !== "string" || typeof pending.pendingAtMs !== "number")
104
+ return null;
105
+ return { id: pending.id, pendingAtMs: pending.pendingAtMs };
106
+ })();
107
+ if (!record)
108
+ continue;
109
+ if (now - record.pendingAtMs <= pendingSessionActionTtlMs)
110
+ activeRecords.push(record);
111
+ }
112
+ return { activeRecords };
113
+ }
114
+ function acceptedActionStorePath(sessionManager) {
115
+ let scope;
116
+ try {
117
+ scope = writerLockScopeForSession(sessionManager);
118
+ }
119
+ catch {
120
+ return "";
121
+ }
122
+ return scope.endsWith(".jsonl")
123
+ ? `${scope}.accepted-actions.json`
124
+ : join(scope, "accepted-actions.json");
125
+ }
126
+ //# sourceMappingURL=session-action-dedupe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-action-dedupe.js","sourceRoot":"","sources":["../../src/pi/session-action-dedupe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAA+B,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAYlG,MAAM,yBAAyB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAEhD,MAAM,UAAU,wBAAwB,CACtC,cAAsC,EACtC,QAAgB;IAEhB,MAAM,kBAAkB,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3C,IAAI,CAAC,kBAAkB;QAAE,OAAO,KAAK,CAAC;IACtC,OAAO,uBAAuB,CAAC,cAAc,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AAChG,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,cAAsC,EACtC,QAAgB;IAEhB,MAAM,kBAAkB,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3C,IAAI,CAAC,kBAAkB;QAAE,OAAO,KAAK,CAAC;IACtC,OAAO,uBAAuB,CAAC,cAAc,CAAC,CAAC,cAAc,CAAC,IAAI,CAChE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,kBAAkB,CAC7C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,cAAsC,EACtC,QAAgB;IAEhB,MAAM,kBAAkB,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3C,IAAI,CAAC,kBAAkB,IAAI,wBAAwB,CAAC,cAAc,EAAE,kBAAkB,CAAC;QAAE,OAAO;IAChG,MAAM,SAAS,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;IAC1D,IAAI,CAAC,SAAS;QAAE,OAAO;IACvB,MAAM,KAAK,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;IACtD,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,kBAAkB,CAAC;QAAE,OAAO;IACpF,wBAAwB,CAAC,SAAS,EAAE;QAClC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,cAAc,EAAE;YACd,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;YACnC,EAAE,EAAE,EAAE,kBAAkB,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE;SACpD;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,cAAsC,EACtC,QAAgB;IAEhB,MAAM,kBAAkB,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3C,IAAI,CAAC,kBAAkB;QAAE,OAAO;IAChC,MAAM,SAAS,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;IAC1D,IAAI,CAAC,SAAS;QAAE,OAAO;IACvB,MAAM,KAAK,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;IACtD,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,kBAAkB,CAAC;QAAE,OAAO;IACrF,wBAAwB,CAAC,SAAS,EAAE;QAClC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,cAAc,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,kBAAkB,CAAC;KAC1F,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,cAAsC,EACtC,QAAgB;IAEhB,MAAM,kBAAkB,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3C,IAAI,CAAC,kBAAkB;QAAE,OAAO;IAChC,MAAM,SAAS,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;IAC1D,IAAI,CAAC,SAAS;QAAE,OAAO;IACvB,MAAM,KAAK,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;IACtD,IAAI,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAAE,OAAO;IACjE,wBAAwB,CAAC,SAAS,EAAE;QAClC,iBAAiB,EAAE,CAAC,GAAG,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,kBAAkB,CAAC;QAC/E,cAAc,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,kBAAkB,CAAC;KAC1F,CAAC,CAAC;AACL,CAAC;AAED,SAAS,uBAAuB,CAAC,cAAsC;IACrE,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;QAC1D,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAGxD,CAAC;QACF,MAAM,cAAc,GAAG,wBAAwB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACzE,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC;YAC/D,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAC;YAC/E,CAAC,CAAC,EAAE,CAAC;QACP,OAAO;YACL,iBAAiB;YACjB,cAAc,EAAE,cAAc,CAAC,aAAa;SAC7C,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,iBAAiB,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;IACvD,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,SAAiB,EAAE,KAA0B;IAC7E,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,aAAa,CACX,SAAS,EACT,IAAI,CAAC,SAAS,CACZ;QACE,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;QAC1C,gBAAgB,EAAE,KAAK,CAAC,cAAc;KACvC,EACD,IAAI,EACJ,CAAC,CACF,EACD,EAAE,IAAI,EAAE,KAAK,EAAE,CAChB,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc;IAG9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC;IACxD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,aAAa,GAA0B,EAAE,CAAC;IAChD,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE;YACnB,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC;YAC3C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC;YACrD,MAAM,OAAO,GAAG,KAAgD,CAAC;YACjE,IAAI,OAAO,OAAO,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC;YAC3F,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;QAC9D,CAAC,CAAC,EAAE,CAAC;QACL,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,IAAI,GAAG,GAAG,MAAM,CAAC,WAAW,IAAI,yBAAyB;YAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,EAAE,aAAa,EAAE,CAAC;AAC3B,CAAC;AAED,SAAS,uBAAuB,CAAC,cAAsC;IACrE,IAAI,KAAa,CAAC;IAClB,IAAI,CAAC;QACH,KAAK,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC7B,CAAC,CAAC,GAAG,KAAK,wBAAwB;QAClC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;AAC3C,CAAC"}