@pentoshi/clai 3.9.2 → 3.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent/compaction-attempt.d.ts +22 -0
- package/dist/agent/compaction-attempt.js +69 -0
- package/dist/agent/compaction-attempt.js.map +1 -0
- package/dist/agent/compaction-summary.d.ts +27 -0
- package/dist/agent/compaction-summary.js +62 -0
- package/dist/agent/compaction-summary.js.map +1 -1
- package/dist/agent/context-breakdown.d.ts +2 -0
- package/dist/agent/context-breakdown.js +37 -0
- package/dist/agent/context-breakdown.js.map +1 -1
- package/dist/agent/context-manager.d.ts +7 -1
- package/dist/agent/context-manager.js +64 -15
- package/dist/agent/context-manager.js.map +1 -1
- package/dist/agent/continue-orient.d.ts +8 -0
- package/dist/agent/continue-orient.js +26 -3
- package/dist/agent/continue-orient.js.map +1 -1
- package/dist/agent/durable-envelope.d.ts +39 -0
- package/dist/agent/durable-envelope.js +195 -0
- package/dist/agent/durable-envelope.js.map +1 -0
- package/dist/agent/events.d.ts +21 -0
- package/dist/agent/loop-guard.d.ts +13 -5
- package/dist/agent/loop-guard.js +114 -1
- package/dist/agent/loop-guard.js.map +1 -1
- package/dist/agent/outcomes.d.ts +29 -0
- package/dist/agent/outcomes.js +118 -3
- package/dist/agent/outcomes.js.map +1 -1
- package/dist/agent/plan-decision.js +8 -3
- package/dist/agent/plan-decision.js.map +1 -1
- package/dist/agent/plan-tool.d.ts +5 -0
- package/dist/agent/plan-tool.js +166 -6
- package/dist/agent/plan-tool.js.map +1 -1
- package/dist/agent/reliability-policy.d.ts +11 -6
- package/dist/agent/reliability-policy.js +19 -13
- package/dist/agent/reliability-policy.js.map +1 -1
- package/dist/agent/request-budget.d.ts +24 -0
- package/dist/agent/request-budget.js +59 -0
- package/dist/agent/request-budget.js.map +1 -0
- package/dist/agent/responder-context.js +2 -2
- package/dist/agent/responder-context.js.map +1 -1
- package/dist/agent/responder-parent.d.ts +30 -0
- package/dist/agent/responder-parent.js +82 -0
- package/dist/agent/responder-parent.js.map +1 -0
- package/dist/agent/runner.d.ts +14 -1
- package/dist/agent/runner.js +759 -211
- package/dist/agent/runner.js.map +1 -1
- package/dist/agent/scope-context.d.ts +5 -0
- package/dist/agent/scope-context.js +7 -1
- package/dist/agent/scope-context.js.map +1 -1
- package/dist/agent/session-policy.js +1 -0
- package/dist/agent/session-policy.js.map +1 -1
- package/dist/agent/stop-summary.js +13 -7
- package/dist/agent/stop-summary.js.map +1 -1
- package/dist/agent/task-analyzer.js +7 -3
- package/dist/agent/task-analyzer.js.map +1 -1
- package/dist/agent/task-evidence.js +2 -0
- package/dist/agent/task-evidence.js.map +1 -1
- package/dist/agent/task-sync.d.ts +11 -0
- package/dist/agent/task-sync.js +31 -0
- package/dist/agent/task-sync.js.map +1 -1
- package/dist/agent/tool-call-parser.d.ts +6 -13
- package/dist/agent/tool-call-parser.js +186 -82
- package/dist/agent/tool-call-parser.js.map +1 -1
- package/dist/agent/tool-history.d.ts +8 -2
- package/dist/agent/tool-history.js +8 -1
- package/dist/agent/tool-history.js.map +1 -1
- package/dist/agent/turn-outcome.d.ts +4 -1
- package/dist/agent/turn-outcome.js +16 -2
- package/dist/agent/turn-outcome.js.map +1 -1
- package/dist/app/adapters/agent-event-adapter.js +27 -0
- package/dist/app/adapters/agent-event-adapter.js.map +1 -1
- package/dist/app/adapters/current-agent-adapter.js +1 -0
- package/dist/app/adapters/current-agent-adapter.js.map +1 -1
- package/dist/app/adapters/current-jobs-adapter.js +4 -3
- package/dist/app/adapters/current-jobs-adapter.js.map +1 -1
- package/dist/app/adapters/current-store-adapter.js +4 -3
- package/dist/app/adapters/current-store-adapter.js.map +1 -1
- package/dist/app/adapters/current-updates-adapter.d.ts +1 -1
- package/dist/app/adapters/current-updates-adapter.js +34 -5
- package/dist/app/adapters/current-updates-adapter.js.map +1 -1
- package/dist/app/adapters/quiet-meta-tools.js +2 -1
- package/dist/app/adapters/quiet-meta-tools.js.map +1 -1
- package/dist/app/controllers/job-controller.d.ts +4 -3
- package/dist/app/controllers/job-controller.js +9 -6
- package/dist/app/controllers/job-controller.js.map +1 -1
- package/dist/app/controllers/plan-controller.js +14 -0
- package/dist/app/controllers/plan-controller.js.map +1 -1
- package/dist/app/controllers/responder-settlement.js +2 -2
- package/dist/app/controllers/responder-settlement.js.map +1 -1
- package/dist/app/controllers/session-compact-helper.d.ts +23 -1
- package/dist/app/controllers/session-compact-helper.js +117 -7
- package/dist/app/controllers/session-compact-helper.js.map +1 -1
- package/dist/app/controllers/session-context-usage.d.ts +24 -0
- package/dist/app/controllers/session-context-usage.js +89 -0
- package/dist/app/controllers/session-context-usage.js.map +1 -0
- package/dist/app/controllers/session-controller.d.ts +17 -17
- package/dist/app/controllers/session-controller.js +122 -124
- package/dist/app/controllers/session-controller.js.map +1 -1
- package/dist/app/controllers/session-prompt-queue.d.ts +3 -0
- package/dist/app/controllers/session-prompt-queue.js +20 -1
- package/dist/app/controllers/session-prompt-queue.js.map +1 -1
- package/dist/app/controllers/session-responder.js +16 -6
- package/dist/app/controllers/session-responder.js.map +1 -1
- package/dist/app/controllers/session-turn-request.d.ts +18 -0
- package/dist/app/controllers/session-turn-request.js +31 -0
- package/dist/app/controllers/session-turn-request.js.map +1 -0
- package/dist/app/controllers/turn-continuation.d.ts +14 -0
- package/dist/app/controllers/turn-continuation.js +46 -0
- package/dist/app/controllers/turn-continuation.js.map +1 -0
- package/dist/app/events/app-event.d.ts +21 -0
- package/dist/app/events/app-event.js +1 -0
- package/dist/app/events/app-event.js.map +1 -1
- package/dist/app/ports/agent-port.d.ts +7 -0
- package/dist/app/ports/jobs-port.d.ts +4 -3
- package/dist/app/ports/persistence-port.d.ts +11 -0
- package/dist/app/ports/updates-port.d.ts +8 -0
- package/dist/attachments/service.js +13 -2
- package/dist/attachments/service.js.map +1 -1
- package/dist/commands/providers.js +13 -10
- package/dist/commands/providers.js.map +1 -1
- package/dist/commands/update.d.ts +4 -0
- package/dist/commands/update.js +14 -0
- package/dist/commands/update.js.map +1 -1
- package/dist/llm/adapters/anthropic-tools.d.ts +14 -1
- package/dist/llm/adapters/anthropic-tools.js +36 -5
- package/dist/llm/adapters/anthropic-tools.js.map +1 -1
- package/dist/llm/adapters/gemini-tools.d.ts +3 -1
- package/dist/llm/adapters/gemini-tools.js +5 -2
- package/dist/llm/adapters/gemini-tools.js.map +1 -1
- package/dist/llm/adapters/ollama-tools.js +8 -3
- package/dist/llm/adapters/ollama-tools.js.map +1 -1
- package/dist/llm/adapters/openai-tools.js +8 -1
- package/dist/llm/adapters/openai-tools.js.map +1 -1
- package/dist/llm/agentrouter.js +2 -0
- package/dist/llm/agentrouter.js.map +1 -1
- package/dist/llm/anthropic.d.ts +8 -0
- package/dist/llm/anthropic.js +68 -9
- package/dist/llm/anthropic.js.map +1 -1
- package/dist/llm/aws-mantle.js +60 -12
- package/dist/llm/aws-mantle.js.map +1 -1
- package/dist/llm/bynara.js +2 -0
- package/dist/llm/bynara.js.map +1 -1
- package/dist/llm/capabilities.d.ts +7 -0
- package/dist/llm/capabilities.js +22 -0
- package/dist/llm/capabilities.js.map +1 -1
- package/dist/llm/gemini.d.ts +3 -0
- package/dist/llm/gemini.js +71 -11
- package/dist/llm/gemini.js.map +1 -1
- package/dist/llm/groq.d.ts +20 -1
- package/dist/llm/groq.js +32 -4
- package/dist/llm/groq.js.map +1 -1
- package/dist/llm/http.d.ts +29 -0
- package/dist/llm/http.js +122 -29
- package/dist/llm/http.js.map +1 -1
- package/dist/llm/kimchi.js +2 -0
- package/dist/llm/kimchi.js.map +1 -1
- package/dist/llm/nvidia.js +2 -0
- package/dist/llm/nvidia.js.map +1 -1
- package/dist/llm/ollama.d.ts +5 -0
- package/dist/llm/ollama.js +53 -6
- package/dist/llm/ollama.js.map +1 -1
- package/dist/llm/openai.js +2 -0
- package/dist/llm/openai.js.map +1 -1
- package/dist/llm/openrouter.js +2 -0
- package/dist/llm/openrouter.js.map +1 -1
- package/dist/llm/qwen-cloud.js +2 -0
- package/dist/llm/qwen-cloud.js.map +1 -1
- package/dist/llm/router.d.ts +16 -0
- package/dist/llm/router.js +79 -23
- package/dist/llm/router.js.map +1 -1
- package/dist/llm/sampling.d.ts +32 -0
- package/dist/llm/sampling.js +48 -0
- package/dist/llm/sampling.js.map +1 -0
- package/dist/llm/stream-progress.d.ts +4 -0
- package/dist/llm/stream-progress.js +43 -0
- package/dist/llm/stream-progress.js.map +1 -0
- package/dist/llm/system-messages.d.ts +29 -0
- package/dist/llm/system-messages.js +51 -0
- package/dist/llm/system-messages.js.map +1 -0
- package/dist/llm/token-usage.d.ts +4 -1
- package/dist/llm/token-usage.js +56 -4
- package/dist/llm/token-usage.js.map +1 -1
- package/dist/llm/tool-protocol.js +30 -0
- package/dist/llm/tool-protocol.js.map +1 -1
- package/dist/os/process-tree.d.ts +15 -0
- package/dist/os/process-tree.js +77 -0
- package/dist/os/process-tree.js.map +1 -0
- package/dist/prompts/embedded.js +1 -1
- package/dist/prompts/embedded.js.map +1 -1
- package/dist/prompts/system.agent.md +13 -12
- package/dist/repl/prompt-line.d.ts +5 -0
- package/dist/repl/prompt-line.js +7 -1
- package/dist/repl/prompt-line.js.map +1 -1
- package/dist/repl.js +61 -41
- package/dist/repl.js.map +1 -1
- package/dist/safety/classifier.js +98 -44
- package/dist/safety/classifier.js.map +1 -1
- package/dist/safety/engagement-policy.d.ts +8 -0
- package/dist/safety/engagement-policy.js +52 -7
- package/dist/safety/engagement-policy.js.map +1 -1
- package/dist/safety/patterns.d.ts +44 -0
- package/dist/safety/patterns.js +168 -37
- package/dist/safety/patterns.js.map +1 -1
- package/dist/store/config.d.ts +9 -1
- package/dist/store/config.js +51 -1
- package/dist/store/config.js.map +1 -1
- package/dist/store/history-index.d.ts +12 -0
- package/dist/store/history-index.js +47 -18
- package/dist/store/history-index.js.map +1 -1
- package/dist/store/history.d.ts +5 -2
- package/dist/store/history.js +153 -62
- package/dist/store/history.js.map +1 -1
- package/dist/store/plan.d.ts +81 -5
- package/dist/store/plan.js +406 -46
- package/dist/store/plan.js.map +1 -1
- package/dist/store/redaction-cache.d.ts +12 -0
- package/dist/store/redaction-cache.js +51 -0
- package/dist/store/redaction-cache.js.map +1 -0
- package/dist/store/responder-settlement.d.ts +5 -1
- package/dist/store/responder-settlement.js +42 -30
- package/dist/store/responder-settlement.js.map +1 -1
- package/dist/store/scope.js +36 -27
- package/dist/store/scope.js.map +1 -1
- package/dist/store/task-transitions.d.ts +19 -0
- package/dist/store/task-transitions.js +46 -0
- package/dist/store/task-transitions.js.map +1 -0
- package/dist/tools/capabilities.js +33 -18
- package/dist/tools/capabilities.js.map +1 -1
- package/dist/tools/command-intent.d.ts +24 -0
- package/dist/tools/command-intent.js +158 -4
- package/dist/tools/command-intent.js.map +1 -1
- package/dist/tools/definitions.d.ts +5 -1
- package/dist/tools/definitions.js +162 -21
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/fs.d.ts +16 -0
- package/dist/tools/fs.js +122 -46
- package/dist/tools/fs.js.map +1 -1
- package/dist/tools/image.js +1 -1
- package/dist/tools/image.js.map +1 -1
- package/dist/tools/jobs.d.ts +78 -4
- package/dist/tools/jobs.js +542 -115
- package/dist/tools/jobs.js.map +1 -1
- package/dist/tools/net-ping-sweep.d.ts +3 -1
- package/dist/tools/net-ping-sweep.js +64 -26
- package/dist/tools/net-ping-sweep.js.map +1 -1
- package/dist/tools/nmap-runner.js +5 -2
- package/dist/tools/nmap-runner.js.map +1 -1
- package/dist/tools/pdf.js +50 -7
- package/dist/tools/pdf.js.map +1 -1
- package/dist/tools/registry.js +154 -96
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/shell.d.ts +24 -2
- package/dist/tools/shell.js +113 -28
- package/dist/tools/shell.js.map +1 -1
- package/dist/tools/tool-types.d.ts +2 -0
- package/dist/tools/validate.d.ts +8 -5
- package/dist/tools/validate.js +177 -7
- package/dist/tools/validate.js.map +1 -1
- package/dist/tools/wordlists.js +69 -17
- package/dist/tools/wordlists.js.map +1 -1
- package/dist/tui/state.d.ts +4 -0
- package/dist/tui/state.js +88 -2
- package/dist/tui/state.js.map +1 -1
- package/dist/tui-v2/actions/keymap.js +3 -8
- package/dist/tui-v2/actions/keymap.js.map +1 -1
- package/dist/tui-v2/app/App.js +52 -4
- package/dist/tui-v2/app/App.js.map +1 -1
- package/dist/tui-v2/app/commands/config-commands.js +5 -2
- package/dist/tui-v2/app/commands/config-commands.js.map +1 -1
- package/dist/tui-v2/app/commands/picker-commands.js +3 -0
- package/dist/tui-v2/app/commands/picker-commands.js.map +1 -1
- package/dist/tui-v2/app/plan-lifecycle.d.ts +1 -1
- package/dist/tui-v2/app/plan-lifecycle.js +2 -1
- package/dist/tui-v2/app/plan-lifecycle.js.map +1 -1
- package/dist/tui-v2/components/composer/composer-input-box.d.ts +1 -1
- package/dist/tui-v2/components/composer/composer-input-box.js +12 -3
- package/dist/tui-v2/components/composer/composer-input-box.js.map +1 -1
- package/dist/tui-v2/components/jobs/jobs-panel.js +19 -6
- package/dist/tui-v2/components/jobs/jobs-panel.js.map +1 -1
- package/dist/tui-v2/components/plan/plan-view.js +9 -6
- package/dist/tui-v2/components/plan/plan-view.js.map +1 -1
- package/dist/tui-v2/components/status/status-line.d.ts +15 -0
- package/dist/tui-v2/components/status/status-line.js +33 -25
- package/dist/tui-v2/components/status/status-line.js.map +1 -1
- package/dist/tui-v2/components/transcript/assistant-message.js +17 -9
- package/dist/tui-v2/components/transcript/assistant-message.js.map +1 -1
- package/dist/tui-v2/components/transcript/compacted-row.js +49 -22
- package/dist/tui-v2/components/transcript/compacted-row.js.map +1 -1
- package/dist/tui-v2/components/transcript/intro-card.js +3 -0
- package/dist/tui-v2/components/transcript/intro-card.js.map +1 -1
- package/dist/tui-v2/components/transcript/thinking-block.js +2 -1
- package/dist/tui-v2/components/transcript/thinking-block.js.map +1 -1
- package/dist/tui-v2/components/transcript/transcript-view.js +27 -2
- package/dist/tui-v2/components/transcript/transcript-view.js.map +1 -1
- package/dist/tui-v2/components/transcript/use-transcript-selection.js +57 -6
- package/dist/tui-v2/components/transcript/use-transcript-selection.js.map +1 -1
- package/dist/tui-v2/composer/composer-editor.js +12 -6
- package/dist/tui-v2/composer/composer-editor.js.map +1 -1
- package/dist/tui-v2/rendering/incremental-strip.d.ts +11 -0
- package/dist/tui-v2/rendering/incremental-strip.js +89 -0
- package/dist/tui-v2/rendering/incremental-strip.js.map +1 -0
- package/dist/tui-v2/rendering/plan-view.d.ts +12 -0
- package/dist/tui-v2/rendering/plan-view.js +71 -2
- package/dist/tui-v2/rendering/plan-view.js.map +1 -1
- package/dist/tui-v2/rendering/streaming-markdown.d.ts +25 -0
- package/dist/tui-v2/rendering/streaming-markdown.js +108 -0
- package/dist/tui-v2/rendering/streaming-markdown.js.map +1 -0
- package/dist/tui-v2/rendering/thinking-tail.d.ts +5 -0
- package/dist/tui-v2/rendering/thinking-tail.js +26 -0
- package/dist/tui-v2/rendering/thinking-tail.js.map +1 -0
- package/dist/tui-v2/state/transcript-hydrate.js +6 -2
- package/dist/tui-v2/state/transcript-hydrate.js.map +1 -1
- package/dist/tui-v2/state/transcript-reducer.js +146 -25
- package/dist/tui-v2/state/transcript-reducer.js.map +1 -1
- package/dist/tui-v2/state/transcript-types.d.ts +6 -0
- package/dist/tui-v2/state/transcript-types.js +17 -0
- package/dist/tui-v2/state/transcript-types.js.map +1 -1
- package/dist/types.d.ts +29 -0
- package/dist/types.js.map +1 -1
- package/dist/ui/intro-header.d.ts +1 -0
- package/dist/ui/intro-header.js +10 -13
- package/dist/ui/intro-header.js.map +1 -1
- package/dist/ui/markdown.js +9 -2
- package/dist/ui/markdown.js.map +1 -1
- package/dist/ui/mentions.d.ts +5 -0
- package/dist/ui/mentions.js +66 -7
- package/dist/ui/mentions.js.map +1 -1
- package/dist/ui/thinking.d.ts +5 -1
- package/dist/ui/thinking.js +3 -2
- package/dist/ui/thinking.js.map +1 -1
- package/dist/version.generated.d.ts +2 -2
- package/dist/version.generated.js +2 -2
- package/package.json +2 -1
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { estimateMessagesTokens, isCompactionMemoryMessage, } from "../../agent/context-manager.js";
|
|
2
2
|
import { repairToolProtocol } from "../../agent/tool-history.js";
|
|
3
|
-
import {
|
|
3
|
+
import { formatContextChip, snapshotFromEstimate, } from "../../llm/token-usage.js";
|
|
4
|
+
import { compactedUsageSnapshot, recordUsageSnapshot, resolveContextUsageSnapshot, restoredUsageSnapshot, createContextProjector, } from "./session-context-usage.js";
|
|
4
5
|
import { createSessionPolicy } from "../../agent/session-policy.js";
|
|
5
|
-
import {
|
|
6
|
+
import { previousTurnSignal } from "./turn-continuation.js";
|
|
7
|
+
import { buildTurnRequest } from "./session-turn-request.js";
|
|
6
8
|
import { generateSessionTitle } from "../../agent/session-title.js";
|
|
7
9
|
import { clearTextOnlyModels } from "../../llm/tool-protocol.js";
|
|
8
10
|
import { getConfig, getProviderModel } from "../../store/config.js";
|
|
9
11
|
import { beginSessionWorkspace, getActiveSessionWorkspace } from "../../store/session-workspace.js";
|
|
10
|
-
import {
|
|
11
|
-
import { summarizeForSessionCompact } from "./session-compact-helper.js";
|
|
12
|
+
import { runSessionCompaction, } from "./session-compact-helper.js";
|
|
12
13
|
import { settlePersistedResponderResults } from "./responder-settlement.js";
|
|
13
|
-
import { asSessionId
|
|
14
|
-
import { EventSequencer
|
|
14
|
+
import { asSessionId } from "../events/app-event.js";
|
|
15
|
+
import { EventSequencer } from "../events/sequencer.js";
|
|
15
16
|
import { OutputSpool } from "../events/event-buffer.js";
|
|
16
17
|
import { TurnController } from "./turn-controller.js";
|
|
17
18
|
import { CompositeDisposable } from "./disposable.js";
|
|
@@ -32,6 +33,14 @@ function pathBackedMessages(messages) {
|
|
|
32
33
|
return images.length > 0 ? { ...rest, images } : rest;
|
|
33
34
|
});
|
|
34
35
|
}
|
|
36
|
+
const IDLE_RESPONDER_STATE = {
|
|
37
|
+
mode: "off",
|
|
38
|
+
running: 0,
|
|
39
|
+
ready: 0,
|
|
40
|
+
delivered: 0,
|
|
41
|
+
archived: 0,
|
|
42
|
+
failed: 0,
|
|
43
|
+
};
|
|
35
44
|
export class SessionController {
|
|
36
45
|
deps;
|
|
37
46
|
spool = new OutputSpool();
|
|
@@ -63,6 +72,12 @@ export class SessionController {
|
|
|
63
72
|
static AUTOSAVE_MIN_MS = 15_000;
|
|
64
73
|
/** Last known context / session token totals for the status strip. */
|
|
65
74
|
contextUsage;
|
|
75
|
+
/** Bumped by reset/history load/dispose so late callbacks can be ignored. */
|
|
76
|
+
lifecycleGeneration = 0;
|
|
77
|
+
lastTurnResult;
|
|
78
|
+
restoredPreviousTurn;
|
|
79
|
+
activeTurnGeneration;
|
|
80
|
+
projectContext = createContextProjector((snapshot) => formatContextChip(snapshot, { compact: false }));
|
|
66
81
|
constructor(deps) {
|
|
67
82
|
this.deps = deps;
|
|
68
83
|
this.sessionIdValue = asSessionId(deps.sessionId ?? mintSessionId());
|
|
@@ -87,6 +102,7 @@ export class SessionController {
|
|
|
87
102
|
notifyState: () => this.notifyState(),
|
|
88
103
|
notice: (text) => this.notice("info", text),
|
|
89
104
|
runTurn: (prompt, options) => this.runTurn(prompt, options),
|
|
105
|
+
lastTurnResult: () => this.lastTurnResult,
|
|
90
106
|
});
|
|
91
107
|
if (deps.jobs) {
|
|
92
108
|
this.responder = new SessionResponder({
|
|
@@ -123,7 +139,7 @@ export class SessionController {
|
|
|
123
139
|
return this.sessionIdValue;
|
|
124
140
|
}
|
|
125
141
|
getState() {
|
|
126
|
-
const contextUsage = this.
|
|
142
|
+
const { contextUsage, contextChip } = this.contextUsageProjection();
|
|
127
143
|
return {
|
|
128
144
|
sessionId: this.sessionIdValue,
|
|
129
145
|
mode: this.mode,
|
|
@@ -133,60 +149,32 @@ export class SessionController {
|
|
|
133
149
|
compacting: this.compactingFlag,
|
|
134
150
|
historyLength: this.history.length,
|
|
135
151
|
queued: this.prompts.snapshot(),
|
|
136
|
-
responder: this.responder?.getState() ??
|
|
137
|
-
mode: "off",
|
|
138
|
-
running: 0,
|
|
139
|
-
ready: 0,
|
|
140
|
-
delivered: 0,
|
|
141
|
-
archived: 0,
|
|
142
|
-
failed: 0,
|
|
143
|
-
},
|
|
152
|
+
responder: this.responder?.getState() ?? IDLE_RESPONDER_STATE,
|
|
144
153
|
title: this.sessionTitle,
|
|
145
154
|
contextUsage,
|
|
146
|
-
contextChip
|
|
147
|
-
? formatContextChip(contextUsage, { compact: false })
|
|
148
|
-
: undefined,
|
|
155
|
+
contextChip,
|
|
149
156
|
};
|
|
150
157
|
}
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
158
|
+
contextUsageProjection() {
|
|
159
|
+
return this.projectContext(this.usageTarget, this.history, this.contextUsage);
|
|
160
|
+
}
|
|
161
|
+
get usageTarget() {
|
|
162
|
+
return { provider: this.provider, model: this.model };
|
|
163
|
+
}
|
|
155
164
|
resolveContextUsage() {
|
|
156
|
-
|
|
157
|
-
if (this.contextUsage?.exact && this.contextUsage.contextTokens > 0) {
|
|
158
|
-
return { ...this.contextUsage, contextLimit: limit };
|
|
159
|
-
}
|
|
160
|
-
if (this.history.length === 0 && !this.contextUsage)
|
|
161
|
-
return undefined;
|
|
162
|
-
return snapshotFromEstimate(this.history, this.model, this.provider, this.contextUsage);
|
|
165
|
+
return resolveContextUsageSnapshot(this.usageTarget, this.history, this.contextUsage);
|
|
163
166
|
}
|
|
164
167
|
/** Record provider-reported usage (from agent token-usage events). */
|
|
165
168
|
recordTokenUsage(usage, model) {
|
|
166
|
-
const
|
|
167
|
-
this.contextUsage =
|
|
169
|
+
const target = { provider: this.provider, model: model ?? this.model };
|
|
170
|
+
this.contextUsage = recordUsageSnapshot(target, this.contextUsage, usage);
|
|
168
171
|
if (model)
|
|
169
172
|
this.model = model;
|
|
170
173
|
this.notifyState();
|
|
171
174
|
}
|
|
172
|
-
/**
|
|
173
|
-
* After /compact or auto-compact: history was replaced with a short memory
|
|
174
|
-
* + recent turns. Drop stale exact prompt_tokens so the footer shows the
|
|
175
|
-
* live context size until the next API usage report.
|
|
176
|
-
*/
|
|
175
|
+
/** After /compact or auto-compact, report the post-compaction context size. */
|
|
177
176
|
noteContextCompacted(afterTokens) {
|
|
178
|
-
|
|
179
|
-
const estimated = typeof afterTokens === "number" && afterTokens > 0
|
|
180
|
-
? afterTokens
|
|
181
|
-
: estimateMessagesTokens(this.history);
|
|
182
|
-
this.contextUsage = {
|
|
183
|
-
contextTokens: estimated,
|
|
184
|
-
contextLimit: limit,
|
|
185
|
-
lastCompletionTokens: 0,
|
|
186
|
-
sessionPromptTokens: this.contextUsage?.sessionPromptTokens ?? 0,
|
|
187
|
-
sessionCompletionTokens: this.contextUsage?.sessionCompletionTokens ?? 0,
|
|
188
|
-
exact: false,
|
|
189
|
-
};
|
|
177
|
+
this.contextUsage = compactedUsageSnapshot(this.usageTarget, this.contextUsage, this.history, afterTokens);
|
|
190
178
|
this.notifyState();
|
|
191
179
|
}
|
|
192
180
|
/** After history loads, estimate fill until the next API usage report. */
|
|
@@ -221,14 +209,13 @@ export class SessionController {
|
|
|
221
209
|
* autosaves update the resumed history row).
|
|
222
210
|
*/
|
|
223
211
|
loadHistory(messages, options = {}) {
|
|
224
|
-
|
|
225
|
-
this.turn.abort();
|
|
226
|
-
this.responder?.invalidateWake();
|
|
212
|
+
this.beginLifecycleGeneration();
|
|
227
213
|
// Deep-copy then heal broken assistant/tool pairs from aborted turns so
|
|
228
214
|
// /history resume + "continue" never dies on invalid native tool protocol.
|
|
229
215
|
const healed = messages.map((m) => ({ ...m }));
|
|
230
216
|
repairToolProtocol(healed);
|
|
231
217
|
this.history = healed;
|
|
218
|
+
this.restoredPreviousTurn = options.previousTurn;
|
|
232
219
|
this.prompts.clear();
|
|
233
220
|
this.spool.clear();
|
|
234
221
|
// Keep the resumed session's existing title; only refresh after the user
|
|
@@ -238,19 +225,9 @@ export class SessionController {
|
|
|
238
225
|
this.titleInFlight = false;
|
|
239
226
|
// Prefer the exact snapshot saved during the live turn; only estimate when
|
|
240
227
|
// older sessions have no usage payload (would otherwise drop 39k → ~11k).
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
this.contextUsage = {
|
|
245
|
-
contextTokens: cu.contextTokens,
|
|
246
|
-
contextLimit: typeof cu.contextLimit === "number" && cu.contextLimit > 0
|
|
247
|
-
? cu.contextLimit
|
|
248
|
-
: modelContextWindow(this.model, this.provider),
|
|
249
|
-
lastCompletionTokens: cu.lastCompletionTokens ?? 0,
|
|
250
|
-
sessionPromptTokens: cu.sessionPromptTokens ?? 0,
|
|
251
|
-
sessionCompletionTokens: cu.sessionCompletionTokens ?? 0,
|
|
252
|
-
exact: cu.exact === true,
|
|
253
|
-
};
|
|
228
|
+
const restored = restoredUsageSnapshot(this.usageTarget, options.contextUsage);
|
|
229
|
+
if (restored) {
|
|
230
|
+
this.contextUsage = restored;
|
|
254
231
|
}
|
|
255
232
|
else {
|
|
256
233
|
this.contextUsage = undefined;
|
|
@@ -289,10 +266,9 @@ export class SessionController {
|
|
|
289
266
|
* history row.
|
|
290
267
|
*/
|
|
291
268
|
reset(options = {}) {
|
|
292
|
-
|
|
293
|
-
this.turn.abort();
|
|
294
|
-
this.responder?.invalidateWake();
|
|
269
|
+
this.beginLifecycleGeneration();
|
|
295
270
|
this.history = [];
|
|
271
|
+
this.restoredPreviousTurn = undefined;
|
|
296
272
|
this.prompts.clear();
|
|
297
273
|
this.sessionTitle = undefined;
|
|
298
274
|
this.titledAtUserCount = 0;
|
|
@@ -327,52 +303,46 @@ export class SessionController {
|
|
|
327
303
|
throw new Error("compaction already in progress");
|
|
328
304
|
const cfg = getConfig();
|
|
329
305
|
const provider = this.provider ?? cfg.defaultProvider;
|
|
330
|
-
const
|
|
306
|
+
const history = [...this.history];
|
|
331
307
|
const persist = options.persist !== false;
|
|
332
|
-
const
|
|
308
|
+
const generation = this.lifecycleGeneration;
|
|
309
|
+
const abortController = new AbortController();
|
|
333
310
|
this.compactingFlag = true;
|
|
334
|
-
|
|
335
|
-
this.compactAbort = compactAc;
|
|
311
|
+
this.compactAbort = abortController;
|
|
336
312
|
if (signal?.aborted)
|
|
337
|
-
|
|
313
|
+
abortController.abort();
|
|
338
314
|
else
|
|
339
|
-
signal?.addEventListener("abort", () =>
|
|
315
|
+
signal?.addEventListener("abort", () => abortController.abort(), { once: true });
|
|
340
316
|
this.notifyState();
|
|
341
317
|
try {
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
318
|
+
return await runSessionCompaction({
|
|
319
|
+
history,
|
|
320
|
+
sessionTranscript,
|
|
321
|
+
keepRecent,
|
|
322
|
+
signal: abortController.signal,
|
|
346
323
|
purpose: options.purpose,
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
this.
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
.
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
afterTokens: result.afterTokens,
|
|
363
|
-
}, undefined));
|
|
364
|
-
await this.persistNow();
|
|
365
|
-
}
|
|
366
|
-
return result;
|
|
324
|
+
provider,
|
|
325
|
+
model: this.model ?? cfg.defaultModel,
|
|
326
|
+
persist,
|
|
327
|
+
compactionId: String(this.sequencer.ids.message()),
|
|
328
|
+
sequencer: this.sequencer,
|
|
329
|
+
emit: this.deps.emit,
|
|
330
|
+
isCurrent: () => generation === this.lifecycleGeneration,
|
|
331
|
+
commit: (result) => {
|
|
332
|
+
this.history = result.messages;
|
|
333
|
+
if (result.summarized)
|
|
334
|
+
this.noteContextCompacted(result.afterTokens);
|
|
335
|
+
this.notifyState();
|
|
336
|
+
},
|
|
337
|
+
persistNow: () => this.persistNow(),
|
|
338
|
+
});
|
|
367
339
|
}
|
|
368
340
|
finally {
|
|
369
|
-
this.
|
|
370
|
-
|
|
341
|
+
if (generation === this.lifecycleGeneration) {
|
|
342
|
+
this.compactingFlag = false;
|
|
343
|
+
this.compactAbort = undefined;
|
|
344
|
+
}
|
|
371
345
|
this.notifyState();
|
|
372
|
-
// Becoming idle after compaction is an idle transition just like a turn
|
|
373
|
-
// ending: a responder completion that arrived while compactingFlag was
|
|
374
|
-
// set had its wake suppressed by isBusy(). Re-arm it here or the agent
|
|
375
|
-
// stays stranded (job exited, no wake, no delivery) until the next turn.
|
|
376
346
|
this.responder?.scheduleWake();
|
|
377
347
|
}
|
|
378
348
|
}
|
|
@@ -383,6 +353,12 @@ export class SessionController {
|
|
|
383
353
|
history: this.history,
|
|
384
354
|
});
|
|
385
355
|
}
|
|
356
|
+
continuationCheckpoint() {
|
|
357
|
+
if (this.activeTurnGeneration === this.lifecycleGeneration) {
|
|
358
|
+
return { status: "error", reason: "the previous process stopped before the turn settled" };
|
|
359
|
+
}
|
|
360
|
+
return previousTurnSignal(this.lastTurnResult) ?? this.restoredPreviousTurn;
|
|
361
|
+
}
|
|
386
362
|
async persistNow(name) {
|
|
387
363
|
if (this.deps.noHistory || getConfig().privateMode) {
|
|
388
364
|
this.settlePersistedResponderResults();
|
|
@@ -401,6 +377,7 @@ export class SessionController {
|
|
|
401
377
|
sessionId: this.sessionIdValue,
|
|
402
378
|
name: name ?? this.sessionTitle,
|
|
403
379
|
transcript: this.deps.getTranscriptSnapshot?.(),
|
|
380
|
+
previousTurn: this.continuationCheckpoint() ?? null,
|
|
404
381
|
...(contextUsage ? { contextUsage } : {}),
|
|
405
382
|
});
|
|
406
383
|
this.settlePersistedResponderResults();
|
|
@@ -516,33 +493,32 @@ export class SessionController {
|
|
|
516
493
|
const config = getConfig();
|
|
517
494
|
const provider = this.provider ?? config.defaultProvider;
|
|
518
495
|
const model = this.model ?? getProviderModel(provider);
|
|
519
|
-
const
|
|
496
|
+
const checkpoint = this.continuationCheckpoint();
|
|
497
|
+
const built = buildTurnRequest({
|
|
520
498
|
prompt,
|
|
521
499
|
mode: this.mode,
|
|
522
500
|
provider,
|
|
523
501
|
model,
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
this.notice("info", resolved.fallbackReason);
|
|
527
|
-
const request = {
|
|
528
|
-
prompt: resolved.prompt,
|
|
529
|
-
mode: resolved.mode,
|
|
530
|
-
provider: resolved.provider,
|
|
531
|
-
model: resolved.model,
|
|
532
|
-
history: opts?.materializeHistoryImages === false
|
|
533
|
-
? this.history
|
|
534
|
-
: materializeHistoryImages(this.history),
|
|
535
|
-
attachments: resolved.attachments,
|
|
536
|
-
images: resolved.images,
|
|
502
|
+
history: this.history,
|
|
503
|
+
materializeImages: opts?.materializeHistoryImages !== false,
|
|
537
504
|
...(opts?.displayPrompt !== undefined
|
|
538
505
|
? { displayPrompt: opts.displayPrompt }
|
|
539
506
|
: {}),
|
|
540
|
-
|
|
507
|
+
...(checkpoint ? { previousTurn: checkpoint } : {}),
|
|
508
|
+
});
|
|
509
|
+
if (built.fallbackReason)
|
|
510
|
+
this.notice("info", built.fallbackReason);
|
|
511
|
+
const request = built.request;
|
|
512
|
+
const turnGeneration = this.lifecycleGeneration;
|
|
513
|
+
this.activeTurnGeneration = turnGeneration;
|
|
541
514
|
const pending = this.turn.run(request, {
|
|
542
515
|
confirm: this.deps.confirm,
|
|
543
516
|
requestSecret: this.deps.requestSecret,
|
|
544
517
|
session: this.policy,
|
|
545
518
|
onMessages: (messages) => {
|
|
519
|
+
// A later reset/load owns the session; ignore late callbacks.
|
|
520
|
+
if (turnGeneration !== this.lifecycleGeneration)
|
|
521
|
+
return;
|
|
546
522
|
this.history = pathBackedMessages(messages);
|
|
547
523
|
this.notifyState();
|
|
548
524
|
// Periodic durable snapshot so Esc/kill mid-run does not wipe tools.
|
|
@@ -552,15 +528,24 @@ export class SessionController {
|
|
|
552
528
|
});
|
|
553
529
|
this.notifyState();
|
|
554
530
|
const result = await pending;
|
|
531
|
+
if (this.activeTurnGeneration === turnGeneration) {
|
|
532
|
+
this.activeTurnGeneration = undefined;
|
|
533
|
+
}
|
|
555
534
|
this.notifyState();
|
|
556
535
|
this.responder?.scheduleWake();
|
|
536
|
+
const sameGeneration = turnGeneration === this.lifecycleGeneration;
|
|
537
|
+
if (sameGeneration) {
|
|
538
|
+
this.lastTurnResult = result;
|
|
539
|
+
this.restoredPreviousTurn = undefined;
|
|
540
|
+
}
|
|
557
541
|
try {
|
|
558
|
-
if (
|
|
559
|
-
result.status === "
|
|
560
|
-
|
|
542
|
+
if (sameGeneration &&
|
|
543
|
+
(result.status === "completed" ||
|
|
544
|
+
result.status === "aborted" ||
|
|
545
|
+
result.status === "error")) {
|
|
561
546
|
await this.persistNow();
|
|
562
547
|
}
|
|
563
|
-
if (result.status === "completed") {
|
|
548
|
+
if (sameGeneration && result.status === "completed") {
|
|
564
549
|
void this.maybeRefreshTitle();
|
|
565
550
|
}
|
|
566
551
|
for (const listener of this.turnEndListeners)
|
|
@@ -593,8 +578,21 @@ export class SessionController {
|
|
|
593
578
|
this.autosaveInFlight = false;
|
|
594
579
|
});
|
|
595
580
|
}
|
|
596
|
-
|
|
581
|
+
/** Fence the previous lifecycle: running turn, compaction and title. */
|
|
582
|
+
beginLifecycleGeneration() {
|
|
583
|
+
this.lifecycleGeneration += 1;
|
|
584
|
+
this.lastTurnResult = undefined;
|
|
585
|
+
this.restoredPreviousTurn = undefined;
|
|
586
|
+
if (this.turn.running)
|
|
587
|
+
this.turn.abort();
|
|
588
|
+
this.compactAbort?.abort();
|
|
589
|
+
this.compactAbort = undefined;
|
|
590
|
+
this.compactingFlag = false;
|
|
591
|
+
this.titleInFlight = false;
|
|
597
592
|
this.responder?.invalidateWake();
|
|
593
|
+
}
|
|
594
|
+
dispose() {
|
|
595
|
+
this.beginLifecycleGeneration();
|
|
598
596
|
this.turnEndListeners.clear();
|
|
599
597
|
this.stateListeners.clear();
|
|
600
598
|
this.disposables.dispose();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-controller.js","sourceRoot":"","sources":["../../../src/app/controllers/session-controller.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,GAE1B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,GAErB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAsB,MAAM,+BAA+B,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAyB,MAAM,kCAAkC,CAAC;AAC3H,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;AAE5E,OAAO,EACL,WAAW,GAIZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,cAAc,GAGf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAMxD,OAAO,EAAE,cAAc,EAAmB,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAmB,MAAM,iBAAiB,CAAC;AACvE,OAAO,EACL,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,kBAAkB,GAEnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,gBAAgB,GAEjB,MAAM,wBAAwB,CAAC;AA4ChC,SAAS,aAAa;IACpB,OAAO,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACrF,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgC;IAC1D,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAC9B,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM;YAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;QACnD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAC9C,KAAK,CAAC,IAAI;YACR,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;YACpE,CAAC,CAAC,EAAE,CACP,CAAC;QACF,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;QAC7C,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACxD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,OAAO,iBAAiB;IAiCC;IAhCpB,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC;IAE3B,cAAc,CAAY;IACjB,SAAS,CAAiB;IAC1B,IAAI,CAAiB;IAC9B,MAAM,CAAgB;IACb,WAAW,GAAG,IAAI,mBAAmB,EAAE,CAAC;IACxC,gBAAgB,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC9C,cAAc,GAAG,IAAI,GAAG,EAAwB,CAAC;IAE1D,OAAO,GAAkB,EAAE,CAAC;IACnB,OAAO,CAAqB;IAC5B,SAAS,CAA+B;IACjD,QAAQ,CAAyB;IACjC,KAAK,CAAqB;IAC1B,IAAI,CAAO;IACX,cAAc,GAAG,KAAK,CAAC;IACvB,YAAY,CAA8B,CAAC,6BAA6B;IAChF,8EAA8E;IACtE,YAAY,CAAqB;IACzC,gFAAgF;IACxE,iBAAiB,GAAG,CAAC,CAAC;IACtB,aAAa,GAAG,KAAK,CAAC;IAC9B,mFAAmF;IAC3E,cAAc,GAAG,CAAC,CAAC;IACnB,gBAAgB,GAAG,KAAK,CAAC;IACjC,iFAAiF;IAChE,WAAW,CAA0B;IAC9C,MAAM,CAAU,eAAe,GAAG,MAAM,CAAC;IACjD,sEAAsE;IAC9D,YAAY,CAAmC;IAEvD,YAA6B,IAA2B;QAA3B,SAAI,GAAJ,IAAI,CAAuB;QACtD,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,IAAI,aAAa,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,WAAW,GAAG,IAAI,uBAAuB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACvD,+DAA+D;QAC/D,qBAAqB,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,CACjC,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,KAAK,CACX,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAC9B,IAAI,cAAc,CAAC;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC,CACH,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,kBAAkB,CAAC;YACpC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO;YAClC,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YACrC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;YACrC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;YAC3C,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;SAC5D,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,CAAC;gBACpC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc;gBACpC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc;gBACtD,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gBAC9C,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;gBAC5C,OAAO,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAC7B,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;oBACnB,aAAa,EAAE,IAAI;oBACnB,wBAAwB,EAAE,KAAK;oBAC/B,SAAS;iBACV,CAAC;gBACJ,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;gBACrC,GAAG,CAAC,IAAI,CAAC,uBAAuB;oBAC9B,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,uBAAuB,EAAE;oBAClD,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;gBACjD,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,IAAI,SAAS;QACX,OAAO,yBAAyB,EAAE,CAAC;IACrC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,QAAQ;QACN,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAChD,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,cAAc;YAC9B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;YAC1B,UAAU,EAAE,IAAI,CAAC,cAAc;YAC/B,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;YAClC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI;gBACvC,IAAI,EAAE,KAAK;gBACX,OAAO,EAAE,CAAC;gBACV,KAAK,EAAE,CAAC;gBACR,SAAS,EAAE,CAAC;gBACZ,QAAQ,EAAE,CAAC;gBACX,MAAM,EAAE,CAAC;aACV;YACD,KAAK,EAAE,IAAI,CAAC,YAAY;YACxB,YAAY;YACZ,WAAW,EAAE,YAAY;gBACvB,CAAC,CAAC,iBAAiB,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;gBACrD,CAAC,CAAC,SAAS;SACd,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,mBAAmB;QACzB,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5D,IAAI,IAAI,CAAC,YAAY,EAAE,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;YACpE,OAAO,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;QACvD,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO,SAAS,CAAC;QACtE,OAAO,oBAAoB,CACzB,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,YAAY,CAClB,CAAC;IACJ,CAAC;IAED,sEAAsE;IACtE,gBAAgB,CAAC,KAAiB,EAAE,KAAc;QAChD,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrE,IAAI,CAAC,YAAY,GAAG,oBAAoB,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC1E,IAAI,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACH,oBAAoB,CAAC,WAAoB;QACvC,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5D,MAAM,SAAS,GACb,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,GAAG,CAAC;YAChD,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,YAAY,GAAG;YAClB,aAAa,EAAE,SAAS;YACxB,YAAY,EAAE,KAAK;YACnB,oBAAoB,EAAE,CAAC;YACvB,mBAAmB,EAAE,IAAI,CAAC,YAAY,EAAE,mBAAmB,IAAI,CAAC;YAChE,uBAAuB,EAAE,IAAI,CAAC,YAAY,EAAE,uBAAuB,IAAI,CAAC;YACxE,KAAK,EAAE,KAAK;SACb,CAAC;QACF,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,0EAA0E;IAClE,uBAAuB;QAC7B,IAAI,CAAC,YAAY,GAAG,oBAAoB,CACtC,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,QAAQ,EACb,SAAS,CACV,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,oEAAoE;IACpE,SAAS,CAAC,QAA8B;QACtC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED,WAAW,CAAC,QAAgC;QAC1C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,mBAAmB,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,QAAQ,CAAC,KAAyB;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,qFAAqF;QACrF,mBAAmB,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,OAAO,CAAC,IAAU;QAChB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,WAAW,CACT,QAAgC,EAChC,UAuBI,EAAE;QAEN,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACzC,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,CAAC;QACjC,wEAAwE;QACxE,2EAA2E;QAC3E,MAAM,MAAM,GAAkB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9D,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,yEAAyE;QACzE,iDAAiD;QACjD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;QAClC,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;QAC1E,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,2EAA2E;QAC3E,0EAA0E;QAC1E,IACE,OAAO,CAAC,YAAY;YACpB,OAAO,CAAC,YAAY,CAAC,aAAa,GAAG,CAAC,EACtC,CAAC;YACD,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;YAChC,IAAI,CAAC,YAAY,GAAG;gBAClB,aAAa,EAAE,EAAE,CAAC,aAAa;gBAC/B,YAAY,EACV,OAAO,EAAE,CAAC,YAAY,KAAK,QAAQ,IAAI,EAAE,CAAC,YAAY,GAAG,CAAC;oBACxD,CAAC,CAAC,EAAE,CAAC,YAAY;oBACjB,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC;gBACnD,oBAAoB,EAAE,EAAE,CAAC,oBAAoB,IAAI,CAAC;gBAClD,mBAAmB,EAAE,EAAE,CAAC,mBAAmB,IAAI,CAAC;gBAChD,uBAAuB,EAAE,EAAE,CAAC,uBAAuB,IAAI,CAAC;gBACxD,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI;aACzB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;YAC9B,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACjC,CAAC;QACD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACrD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC3C,IAAI,CAAC,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACvD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACvD,CAAC;QACD,kEAAkE;QAClE,wDAAwD;QACxD,qBAAqB,CAAC;YACpB,UAAU,EAAE,OAAO,CAAC,eAAe;YACnC,IAAI,EAAE,OAAO,CAAC,aAAa;SAC5B,CAAC,CAAC;QACH,IAAI,CAAC,+BAA+B,EAAE,CAAC;QACvC,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,KAAkB,EAAE,IAAY;QACrC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,YAAY,CAAC,IAAY;QACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,YAAY;QACV,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAmC,EAAE;QACzC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACzC,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAC9B,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC;YACnD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC3C,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;YAC9B,qDAAqD;YACrD,qBAAqB,EAAE,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACvD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,oEAAoE;IACpE,eAAe,CACb,QAAgC,EAChC,YAA+C;QAE/C,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC7B,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,OAAO,CACX,iBAA0B,EAC1B,UAAU,GAAG,CAAC,EACd,MAAoB,EACpB,UAII,EAAE;QAEN,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,cAAc;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAE3E,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAK,GAAG,CAAC,eAA0C,CAAC;QAClF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,YAAY,CAAC;QAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC;QAC1C,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAE1C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAI,eAAe,EAAE,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAC9B,IAAI,MAAM,EAAE,OAAO;YAAE,SAAS,CAAC,KAAK,EAAE,CAAC;;YAClC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAChF,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAC7C,eAAe,EACf,CAAC,MAAM,EAAE,EAAE,CACT,0BAA0B,CAAC,MAAM,EAAE;gBACjC,QAAQ;gBACR,KAAK;gBACL,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC,EACJ,EAAE,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,EACzD,iBAAiB,CAClB,CAAC;YACF,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC/B,IAAI,MAAM,CAAC,UAAU;gBAAE,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACrE,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,OAAO,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC;gBACnE,kEAAkE;gBAClE,qEAAqE;gBACrE,MAAM,IAAI,GACR,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;qBACjB,OAAO,EAAE;qBACT,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO;oBACjE,mBAAmB,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,IAAI,CACZ,IAAI,CAAC,SAAS,CAAC,KAAK,CAClB,WAAW,EACX;oBACE,OAAO,EAAE,IAAI;oBACb,YAAY,EAAE,MAAM,CAAC,YAAY;oBACjC,WAAW,EAAE,MAAM,CAAC,WAAW;iBAChC,EACD,SAAS,CACV,CACF,CAAC;gBACF,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YAC1B,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;YAC9B,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,wEAAwE;YACxE,uEAAuE;YACvE,uEAAuE;YACvE,yEAAyE;YACzE,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,CAAC;QACjC,CAAC;IACH,CAAC;IAEO,+BAA+B;QACrC,+BAA+B,CAAC;YAC9B,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;YACpB,SAAS,EAAE,IAAI,CAAC,cAAc;YAC9B,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAa;QAC5B,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC,WAAW,EAAE,CAAC;YACnD,IAAI,CAAC,+BAA+B,EAAE,CAAC;YACvC,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACjF,OAAO;QACT,CAAC;QACD,IAAI,IAAI;YAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAEnC,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;QACvE,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACxC,SAAS,EAAE,IAAI,CAAC,cAAc;YAC9B,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,YAAY;YAC/B,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE;YAC/C,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1C,CAAC,CAAC;QACH,IAAI,CAAC,+BAA+B,EAAE,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC,WAAW;YAAE,OAAO;QAC3D,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;QACvE,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CACpC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAC7D,CAAC;QACF,IAAI,SAAS,KAAK,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO;QAC7C,MAAM,cAAc,GAClB,IAAI,CAAC,iBAAiB,KAAK,CAAC,IAAI,SAAS,GAAG,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAC;QAC1E,IAAI,CAAC,cAAc;YAAE,OAAO;QAE5B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,SAAS,EAAE,CAAC,eAAe,CAAC;QAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK;YAAE,OAAO;QAEhC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC;QAC7C,MAAM,WAAW,GAAG,SAAS,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE;gBACrD,QAAQ;gBACR,KAAK;aACN,CAAC,CAAC;YACH,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnB,uEAAuE;YACvE,IAAI,IAAI,CAAC,cAAc,KAAK,gBAAgB;gBAAE,OAAO;YACrD,IAAI,CAAC,iBAAiB,GAAG,WAAW,CAAC;YACrC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,sEAAsE;QACxE,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,eAAe;QACb,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACxC,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;YAC7B,MAAM,EAAE,IAAI,EAAE,aAAa,IAAI,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC;SACpE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS;QACb,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAClB,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,+CAA+C;QAC3E,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACpB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,0DAA0D,EAAE,CAAC;QAC1F,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,CAAC,MAAc,EAAE,IAAyB;QAC/C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IACjC,CAAC;IAED,YAAY,CAAC,KAAa;QACxB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,UAAU,CAAC,KAAa;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,UAAU,CAAC,KAAa,EAAE,IAAY;QACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,aAAa,CAAC,SAAiB,EAAE,OAAe;QAC9C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,aAAa,CAAC,KAAa;QACzB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,MAAe;QACnB,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACxB,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC,kDAAkD;IAChF,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;IAED,0EAA0E;IAC1E,eAAe,CAAC,KAAc;QAC5B,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;IACzC,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC;IACxC,CAAC;IAED,iFAAiF;IACjF,SAAS,CAAC,QAAyB;QACjC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,MAAM,CACV,MAAc,EACd,IAAyB;QAEzB,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;IAEO,KAAK,CAAC,OAAO,CACnB,MAAc,EACd,IAIC;QAED,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,eAAe,CAAC;QACzD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,gBAAgB,CAAC;YAChC,MAAM;YACN,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ;YACR,KAAK;SACN,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,cAAc;YAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;QAC1E,MAAM,OAAO,GAAmB;YAC9B,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,OAAO,EACL,IAAI,EAAE,wBAAwB,KAAK,KAAK;gBACtC,CAAC,CAAC,IAAI,CAAC,OAAO;gBACd,CAAC,CAAC,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC;YAC5C,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,GAAG,CAAC,IAAI,EAAE,aAAa,KAAK,SAAS;gBACnC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE;gBACvC,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;YACrC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;YAC1B,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa;YACtC,OAAO,EAAE,IAAI,CAAC,MAAM;YACpB,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;gBACvB,IAAI,CAAC,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;gBAC5C,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,qEAAqE;gBACrE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,CAAC;YACD,SAAS,EAAE,IAAI,EAAE,SAAS;SAC3B,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;QAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,IACE,MAAM,CAAC,MAAM,KAAK,WAAW;gBAC7B,MAAM,CAAC,MAAM,KAAK,SAAS;gBAC3B,MAAM,CAAC,MAAM,KAAK,OAAO,EACzB,CAAC;gBACD,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YAC1B,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBAClC,KAAK,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAChC,CAAC;YACD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,gBAAgB;gBAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC/D,OAAO,MAAM,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,CAAC;QACjC,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,gBAAgB;QACtB,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC,WAAW;YAAE,OAAO;QAC3D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,yBAAyB,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO;QACzF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,GAAG,GAAG,IAAI,CAAC,cAAc,GAAG,iBAAiB,CAAC,eAAe;YAAE,OAAO;QAC1E,IAAI,IAAI,CAAC,gBAAgB;YAAE,OAAO;QAClC,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;QAC1B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,KAAK,IAAI,CAAC,UAAU,EAAE;aACnB,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;aACtB,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAChC,CAAC,CAAC,CAAC;IACP,CAAC;IAED,OAAO;QACL,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,CAAC;QACjC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEO,WAAW;QACjB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,cAAc;YAAE,QAAQ,EAAE,CAAC;IACzD,CAAC"}
|
|
1
|
+
{"version":3,"file":"session-controller.js","sourceRoot":"","sources":["../../../src/app/controllers/session-controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,8 @@ interface SessionPromptQueueDeps {
|
|
|
8
8
|
readonly notifyState: () => void;
|
|
9
9
|
readonly notice: (text: string) => void;
|
|
10
10
|
readonly runTurn: (prompt: string, options?: TurnDisplayOptions) => Promise<TurnResult>;
|
|
11
|
+
/** Structured result of the last settled turn, whoever started it. */
|
|
12
|
+
readonly lastTurnResult?: (() => TurnResult | undefined) | undefined;
|
|
11
13
|
}
|
|
12
14
|
export declare class SessionPromptQueue {
|
|
13
15
|
private readonly deps;
|
|
@@ -27,6 +29,7 @@ export declare class SessionPromptQueue {
|
|
|
27
29
|
reorder(fromIndex: number, toIndex: number): void;
|
|
28
30
|
sendNow(index: number): void;
|
|
29
31
|
continue(): Promise<void>;
|
|
32
|
+
private continuationGate;
|
|
30
33
|
submit(prompt: string, options?: TurnDisplayOptions): Promise<TurnResult>;
|
|
31
34
|
drain(): Promise<TurnResult[]>;
|
|
32
35
|
private consumeDisplay;
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import { queueContinuationDecision, } from "./turn-continuation.js";
|
|
2
|
+
function pausedQueueNotice(decision) {
|
|
3
|
+
const reason = decision.reason ?? "the turn did not succeed";
|
|
4
|
+
return `queued prompts paused because ${reason}. Send or edit them when ready.`;
|
|
5
|
+
}
|
|
1
6
|
export class SessionPromptQueue {
|
|
2
7
|
deps;
|
|
3
8
|
items = [];
|
|
@@ -84,10 +89,16 @@ export class SessionPromptQueue {
|
|
|
84
89
|
while (!this.deps.isRunning()) {
|
|
85
90
|
let next;
|
|
86
91
|
if (this.priorityPrompt !== undefined) {
|
|
92
|
+
// An explicit steer always runs, whatever the previous turn did.
|
|
87
93
|
next = this.priorityPrompt;
|
|
88
94
|
this.priorityPrompt = undefined;
|
|
89
95
|
}
|
|
90
96
|
else if (this.items.length > 0) {
|
|
97
|
+
const gate = this.continuationGate();
|
|
98
|
+
if (!gate.proceed) {
|
|
99
|
+
this.deps.notice(pausedQueueNotice(gate));
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
91
102
|
next = this.items.shift();
|
|
92
103
|
this.deps.notifyState();
|
|
93
104
|
}
|
|
@@ -103,6 +114,10 @@ export class SessionPromptQueue {
|
|
|
103
114
|
this.continuing = false;
|
|
104
115
|
}
|
|
105
116
|
}
|
|
117
|
+
continuationGate() {
|
|
118
|
+
const last = this.deps.lastTurnResult?.();
|
|
119
|
+
return last ? queueContinuationDecision(last) : { proceed: true };
|
|
120
|
+
}
|
|
106
121
|
async submit(prompt, options) {
|
|
107
122
|
if (this.deps.isRunning()) {
|
|
108
123
|
throw new Error("a turn is already running; enqueue() while busy");
|
|
@@ -123,8 +138,12 @@ export class SessionPromptQueue {
|
|
|
123
138
|
this.deps.notifyState();
|
|
124
139
|
const result = await this.deps.runTurn(next);
|
|
125
140
|
results.push(result);
|
|
126
|
-
|
|
141
|
+
const decision = queueContinuationDecision(result);
|
|
142
|
+
if (!decision.proceed) {
|
|
143
|
+
if (this.items.length > 0)
|
|
144
|
+
this.deps.notice(pausedQueueNotice(decision));
|
|
127
145
|
break;
|
|
146
|
+
}
|
|
128
147
|
}
|
|
129
148
|
return results;
|
|
130
149
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-prompt-queue.js","sourceRoot":"","sources":["../../../src/app/controllers/session-prompt-queue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session-prompt-queue.js","sourceRoot":"","sources":["../../../src/app/controllers/session-prompt-queue.ts"],"names":[],"mappings":"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"}
|