reasonix 0.11.2 → 0.12.6

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.
@@ -2,9 +2,9 @@
2
2
  import {
3
3
  CODE_SYSTEM_PROMPT,
4
4
  codeSystemPrompt
5
- } from "./chunk-JDVY4JDU.js";
5
+ } from "./chunk-PKPWI33U.js";
6
6
  export {
7
7
  CODE_SYSTEM_PROMPT,
8
8
  codeSystemPrompt
9
9
  };
10
- //# sourceMappingURL=prompt-YRY4HPMZ.js.map
10
+ //# sourceMappingURL=prompt-HNDDXDRH.js.map
package/dist/index.d.ts CHANGED
@@ -521,6 +521,46 @@ declare class VolatileScratch {
521
521
  reset(): void;
522
522
  }
523
523
 
524
+ /**
525
+ * Predicate the breaker consults to decide whether a call mutates state.
526
+ * Mutating calls clear the recent-args buffer: re-reading a file after
527
+ * `edit_file` shouldn't count as "saw the same args before" — the file
528
+ * legitimately changed. Wire this from the caller using whatever source
529
+ * of truth is appropriate (e.g. the ToolRegistry's `readOnly` /
530
+ * `readOnlyCheck` flags). When undefined, every call is tracked the
531
+ * old way — preserves the original behavior for callers that don't
532
+ * thread a registry through.
533
+ */
534
+ type IsMutating = (call: ToolCall) => boolean;
535
+ /**
536
+ * Call-storm breaker.
537
+ *
538
+ * Detects (tool, args) tuples repeating within a sliding window and suppresses
539
+ * the offending call. Surfaces a synthetic tool_result advising the model to
540
+ * change strategy on its next turn.
541
+ *
542
+ * Buffer entries are tagged read-only vs mutating. When a mutating call
543
+ * runs, the breaker drops prior read-only entries — a re-read of the
544
+ * same path after `edit_file` is fresh, not a repeat. Mutating calls
545
+ * still count among themselves, so a model looping on identical
546
+ * `edit_file` invocations still trips on the threshold.
547
+ *
548
+ * Without an `isMutating` predicate everything is tracked the same way
549
+ * (back-compat for callers that don't thread a registry through).
550
+ */
551
+ declare class StormBreaker {
552
+ private readonly windowSize;
553
+ private readonly threshold;
554
+ private readonly isMutating;
555
+ private readonly recent;
556
+ constructor(windowSize?: number, threshold?: number, isMutating?: IsMutating);
557
+ inspect(call: ToolCall): {
558
+ suppress: boolean;
559
+ reason?: string;
560
+ };
561
+ reset(): void;
562
+ }
563
+
524
564
  /**
525
565
  * Schema flattening for DeepSeek tool calls.
526
566
  *
@@ -577,25 +617,6 @@ interface ScavengeResult {
577
617
  }
578
618
  declare function scavengeToolCalls(reasoningContent: string | null | undefined, opts: ScavengeOptions): ScavengeResult;
579
619
 
580
- /**
581
- * Call-storm breaker.
582
- *
583
- * Detects (tool, args) tuples repeating within a sliding window and suppresses
584
- * the offending call. Surfaces a synthetic tool_result advising the model to
585
- * change strategy on its next turn.
586
- */
587
- declare class StormBreaker {
588
- private readonly windowSize;
589
- private readonly threshold;
590
- private readonly recent;
591
- constructor(windowSize?: number, threshold?: number);
592
- inspect(call: ToolCall): {
593
- suppress: boolean;
594
- reason?: string;
595
- };
596
- reset(): void;
597
- }
598
-
599
620
  /**
600
621
  * Pillar 3 — Tool-Call Repair pipeline.
601
622
  *
@@ -619,6 +640,14 @@ interface ToolCallRepairOptions {
619
640
  stormWindow?: number;
620
641
  stormThreshold?: number;
621
642
  maxScavenge?: number;
643
+ /**
644
+ * Optional predicate the storm breaker consults to identify state-
645
+ * changing calls — those clear the sliding window so a post-edit
646
+ * verify-read isn't mistaken for a repeat. Production callers wire
647
+ * this off the ToolRegistry's `readOnly` / `readOnlyCheck` flags;
648
+ * tests that don't supply it keep the original behavior.
649
+ */
650
+ isMutating?: IsMutating;
622
651
  }
623
652
  declare class ToolCallRepair {
624
653
  private readonly storm;
@@ -899,6 +928,12 @@ interface CacheFirstLoopOptions {
899
928
  * `max` for Reasonix (agent-class use per DeepSeek V4 docs).
900
929
  */
901
930
  reasoningEffort?: "high" | "max";
931
+ /**
932
+ * Master switch for auto-escalation paths. See ReconfigurableOptions
933
+ * — defaults to `true` (current behavior); the `flash` and `pro`
934
+ * presets pass `false` to lock the running session to one model.
935
+ */
936
+ autoEscalate?: boolean;
902
937
  /**
903
938
  * Session name. When set, the loop pre-loads the session's prior messages
904
939
  * into its log on construction, and appends every new log entry to
@@ -943,6 +978,15 @@ interface ReconfigurableOptions {
943
978
  * mid-session for cheaper, faster turns on simple tasks.
944
979
  */
945
980
  reasoningEffort?: "high" | "max";
981
+ /**
982
+ * Master switch for the auto-escalation paths — both the
983
+ * `<<<NEEDS_PRO>>>` marker scavenge and the failure-count threshold.
984
+ * `true` (default) preserves the original "flash baseline, jump to
985
+ * pro when struggling" behavior. `false` locks the active turn to
986
+ * whatever `model` is set to — used by the `flash` and `pro` presets
987
+ * which want a hard model commitment.
988
+ */
989
+ autoEscalate?: boolean;
946
990
  }
947
991
  declare class CacheFirstLoop {
948
992
  readonly client: DeepSeekClient;
@@ -961,6 +1005,13 @@ declare class CacheFirstLoop {
961
1005
  branchOptions: BranchOptions;
962
1006
  /** See ReconfigurableOptions — mutable so `/effort` can flip mid-session. */
963
1007
  reasoningEffort: "high" | "max";
1008
+ /**
1009
+ * Auto-escalation toggle. `true` lets the loop self-promote to pro
1010
+ * mid-turn (NEEDS_PRO marker / failure threshold); `false` keeps it
1011
+ * pinned to `model`. Mutable so the dashboard's preset switcher can
1012
+ * flip it live alongside `model`.
1013
+ */
1014
+ autoEscalate: boolean;
964
1015
  sessionName: string | null;
965
1016
  /**
966
1017
  * Hook list, mutable so `/hooks reload` can swap it without
@@ -3134,6 +3185,68 @@ declare class SseTransport implements McpTransport {
3134
3185
  private markClosed;
3135
3186
  }
3136
3187
 
3188
+ /**
3189
+ * Streamable HTTP transport for MCP (spec version 2025-03-26).
3190
+ *
3191
+ * Wire shape (single endpoint, no separate POST URL handshake):
3192
+ *
3193
+ * 1. Client POSTs each outgoing JSON-RPC frame to the endpoint with
3194
+ * `Accept: application/json, text/event-stream`. The server picks
3195
+ * ONE of three responses:
3196
+ * a. `202 Accepted`, no body → notification or response
3197
+ * was accepted; nothing more to deliver.
3198
+ * b. `200 OK`, `Content-Type: application/json` → body is a
3199
+ * single JSON-RPC response (or batch). Connection closes.
3200
+ * c. `200 OK`, `Content-Type: text/event-stream` → an SSE
3201
+ * stream of `event: message` frames carrying responses,
3202
+ * server-initiated requests, and notifications. Stream may
3203
+ * close after the matching response or stay open longer.
3204
+ * 2. The server may include `Mcp-Session-Id: <opaque>` on the response
3205
+ * to `initialize`. Client echoes that header on every subsequent
3206
+ * request. A 404 on a request with a session id means the session
3207
+ * expired — caller must reinitialize.
3208
+ *
3209
+ * Compared to 2024-11-05 HTTP+SSE:
3210
+ * - No two-endpoint dance (no `event: endpoint` handshake).
3211
+ * - Replies arrive on the POST response, not on a separate GET stream.
3212
+ * - Session continuity is explicit (`Mcp-Session-Id`), not implicit.
3213
+ *
3214
+ * Not yet implemented in this transport (acceptable for v1):
3215
+ * - Long-lived GET stream for unsolicited server-initiated frames
3216
+ * (sampling requests, etc.). Most MCP servers we care about today
3217
+ * don't issue server-initiated requests, and POST-only handles
3218
+ * full request/response/notification traffic. Add when a real
3219
+ * server we're integrating against needs it.
3220
+ * - Resumability via `Last-Event-ID` on reconnect.
3221
+ */
3222
+
3223
+ interface StreamableHttpTransportOptions {
3224
+ /** Streamable HTTP endpoint URL, e.g. `https://mcp.example.com/mcp`. */
3225
+ url: string;
3226
+ /** Extra headers sent on every request (e.g. `Authorization`). */
3227
+ headers?: Record<string, string>;
3228
+ }
3229
+ declare class StreamableHttpTransport implements McpTransport {
3230
+ private readonly url;
3231
+ private readonly extraHeaders;
3232
+ private readonly queue;
3233
+ private readonly waiters;
3234
+ private readonly controller;
3235
+ /** Session id minted by server on (typically) the initialize response. */
3236
+ private sessionId;
3237
+ private closed;
3238
+ /** Background SSE read-loops kicked off by send(); awaited on close(). */
3239
+ private readonly streams;
3240
+ constructor(opts: StreamableHttpTransportOptions);
3241
+ send(message: JsonRpcMessage): Promise<void>;
3242
+ messages(): AsyncIterableIterator<JsonRpcMessage>;
3243
+ close(): Promise<void>;
3244
+ /** Visible for tests — confirm session header round-trip. */
3245
+ getSessionId(): string | null;
3246
+ private consumeStream;
3247
+ private pushMessage;
3248
+ }
3249
+
3137
3250
  /**
3138
3251
  * Bridge: register an MCP server's tools into a Reasonix ToolRegistry.
3139
3252
  *
@@ -3263,11 +3376,13 @@ declare function truncateForModelByTokens(s: string, maxTokens: number): string;
3263
3376
  * Parse the `--mcp` CLI argument into a transport-tagged spec.
3264
3377
  *
3265
3378
  * Accepted forms:
3266
- * "name=command args..." → stdio, namespaced (tools prefixed with `name_`)
3267
- * "command args..." → stdio, anonymous
3268
- * "name=https://host/sse" → SSE, namespaced
3269
- * "https://host/sse" → SSE, anonymous
3270
- * ("http://" is also honored useful for local dev servers.)
3379
+ * "name=command args..." → stdio, namespaced (tools prefixed with `name_`)
3380
+ * "command args..." → stdio, anonymous
3381
+ * "name=https://host/sse" HTTP+SSE (2024-11-05), namespaced
3382
+ * "https://host/sse" HTTP+SSE (2024-11-05), anonymous
3383
+ * "name=streamable+https://host/mcp" Streamable HTTP (2025-03-26), namespaced
3384
+ * "streamable+https://host/mcp" → Streamable HTTP (2025-03-26), anonymous
3385
+ * ("http://" / "streamable+http://" also honored — useful for local dev.)
3271
3386
  *
3272
3387
  * The identifier regex before `=` is deliberately narrow
3273
3388
  * (`[a-zA-Z_][a-zA-Z0-9_]*`) so Windows drive letters ("C:\\...") and
@@ -3276,9 +3391,15 @@ declare function truncateForModelByTokens(s: string, maxTokens: number): string;
3276
3391
  * with `foo=...` as a bare command, they can wrap it in quotes inside the
3277
3392
  * shell command string.
3278
3393
  *
3279
- * Transport is selected solely by whether the body begins with `http://`
3280
- * or `https://`. Anything else is stdio including ws:// (unsupported)
3281
- * which will surface later as a spawn error, keeping the rule local.
3394
+ * Transport selection:
3395
+ * - body starts with `streamable+http(s)://` Streamable HTTP. The
3396
+ * `streamable+` prefix is stripped from the URL we hand the transport.
3397
+ * - body starts with `http(s)://` → HTTP+SSE (2024-11-05).
3398
+ * Default for plain http URLs to preserve back-compat with users who
3399
+ * already have `--mcp https://...` config entries pointed at SSE
3400
+ * servers; opt into Streamable HTTP explicitly.
3401
+ * - anything else → stdio (including ws://,
3402
+ * which will surface later as a spawn error).
3282
3403
  */
3283
3404
  interface StdioMcpSpec {
3284
3405
  transport: "stdio";
@@ -3295,7 +3416,13 @@ interface SseMcpSpec {
3295
3416
  /** Fully qualified SSE endpoint URL. */
3296
3417
  url: string;
3297
3418
  }
3298
- type McpSpec = StdioMcpSpec | SseMcpSpec;
3419
+ interface StreamableHttpMcpSpec {
3420
+ transport: "streamable-http";
3421
+ name: string | null;
3422
+ /** Fully qualified Streamable HTTP endpoint URL (no `streamable+` prefix). */
3423
+ url: string;
3424
+ }
3425
+ type McpSpec = StdioMcpSpec | SseMcpSpec | StreamableHttpMcpSpec;
3299
3426
  declare function parseMcpSpec(input: string): McpSpec;
3300
3427
 
3301
3428
  /**
@@ -3456,8 +3583,21 @@ declare function codeSystemPrompt(rootDir: string, opts?: CodeSystemPromptOption
3456
3583
  * from `reasonix setup`: preset, MCP servers, session. This is what
3457
3584
  * makes `reasonix chat` with no flags "just work" after first-run.
3458
3585
  */
3459
- /** One of the preset bundles (model + harvest + branch combo). */
3460
- type PresetName = "fast" | "smart" | "max";
3586
+ /**
3587
+ * Preset names three model-commitment levels.
3588
+ * - `auto` — flash baseline + auto-escalate to pro on hard turns
3589
+ * (NEEDS_PRO marker / failure-count threshold both fire).
3590
+ * Default. Closest match to the legacy `smart` preset.
3591
+ * - `flash` — flash always. No auto-escalation. `/pro` still works
3592
+ * for one-shot manual escalation. Cheapest predictable.
3593
+ * - `pro` — pro always. No downgrade. ~3× cost vs flash at the
3594
+ * 2026-04 discount rate; more outside the window.
3595
+ *
3596
+ * Legacy `fast | smart | max` names stay in the union for back-compat
3597
+ * with existing `~/.reasonix/config.json` files; resolvePreset() maps
3598
+ * them to the new semantics.
3599
+ */
3600
+ type PresetName = "auto" | "flash" | "pro" | "fast" | "smart" | "max";
3461
3601
  /**
3462
3602
  * How `reasonix code` handles model-issued tool calls. Two axes folded
3463
3603
  * into one enum because users think about "how trusting am I right now?"
@@ -3736,6 +3876,16 @@ interface UsageBucket {
3736
3876
  cacheMissTokens: number;
3737
3877
  costUsd: number;
3738
3878
  claudeEquivUsd: number;
3879
+ /**
3880
+ * USD that DeepSeek's prompt cache shaved off the bill — sum of
3881
+ * `cacheHitTokens × (missPrice − hitPrice)` per record. Recomputed
3882
+ * from the current pricing table on every aggregate, not frozen at
3883
+ * write time, so a price-cut announcement updates retroactively. The
3884
+ * trade-off is mild inconsistency with `costUsd` (which IS frozen);
3885
+ * acceptable because cache savings is a "what does this mechanism
3886
+ * give me" narrative, not a billing record.
3887
+ */
3888
+ cacheSavingsUsd: number;
3739
3889
  }
3740
3890
  /** Cache hit ratio for a bucket — zero denominator returns 0. */
3741
3891
  declare function bucketCacheHitRatio(b: UsageBucket): number;
@@ -3795,4 +3945,4 @@ declare function aggregateUsage(records: UsageRecord[], opts?: AggregateOptions)
3795
3945
  /** File-size helper for the stats header — "1.2 MB" etc. Returns "" if missing. */
3796
3946
  declare function formatLogSize(path?: string): string;
3797
3947
 
3798
- export { AT_MENTION_PATTERN, AT_PICKER_PREFIX, type AggregateOptions, AppendOnlyLog, type AppendUsageInput, type ApplyResult, type ApplyStatus, type AtMentionExpansion, type AtMentionOptions, type BranchOptions, type BranchProgress, type BranchResult, type BranchSample, type BranchSelector, type BranchSummary, type BridgeOptions, type BridgeResult, CODE_SYSTEM_PROMPT, CacheFirstLoop, type CacheFirstLoopOptions, type CallToolResult, type ChatMessage, type ChatResponse, type ChoiceOption, ChoiceRequestedError, type ChoiceToolOptions, DEFAULT_AT_MENTION_MAX_BYTES, DEFAULT_MAX_RESULT_CHARS, DEFAULT_MAX_RESULT_TOKENS, DEFAULT_PICKER_IGNORE_DIRS, DeepSeekClient, type DeepSeekClientOptions, type RenderOptions as DiffRenderOptions, type DiffReport, type DiffSide, type EditBlock, type EditSnapshot, type EventRole, type FileWithStats, type FilesystemToolsOptions, type FlattenDecision, type FlattenOptions, type GetLatestVersionOptions, type GetPromptResult, HOOK_EVENTS, HOOK_SETTINGS_DIRNAME, HOOK_SETTINGS_FILENAME, type HarvestOptions, type HookConfig, type HookEvent, type HookOutcome, type HookPayload, type HookReport, type HookScope, type HookSettings, type HookSpawnInput, type HookSpawnResult, type HookSpawner, ImmutablePrefix, type ImmutablePrefixOptions, type InitializeResult, type InspectionReport, type JSONSchema, type JsonRpcMessage, type JsonRpcRequest, type JsonRpcResponse, LATEST_CACHE_TTL_MS, LATEST_FETCH_TIMEOUT_MS, type ListFilesOptions, type ListPromptsResult, type ListResourcesResult, type ListToolsResult, type LoadHookSettingsOptions, type LoopEvent, MCP_PROTOCOL_VERSION, MEMORY_INDEX_FILE, MEMORY_INDEX_MAX_CHARS, McpClient, type McpClientOptions, type McpContentBlock, type McpProgressHandler, type McpProgressInfo, type McpPrompt, type McpPromptArgument, type McpPromptMessage, type McpPromptResourceBlock, type McpResource, type McpResourceContents, type McpResourceContentsBlob, type McpResourceContentsText, type McpSpec, type McpTool, type McpToolSchema, type McpTransport, type MemoryEntry, type MemoryScope, MemoryStore, type MemoryStoreOptions, type MemoryToolsOptions, type MemoryType, type WriteInput as MemoryWriteInput, NeedsConfirmationError, PROJECT_MEMORY_FILE, PROJECT_MEMORY_MAX_CHARS, type PageContent, type PickerCandidate, PlanCheckpointError, PlanProposedError, PlanRevisionProposedError, type PlanStep, type PlanStepRisk, type PlanToolOptions, type ProgressNotificationParams, type ProjectMemory, type RankPickerOptions, type ReadResourceResult, type ReadTranscriptResult, type ReasonixConfig, type ReconfigurableOptions, type RepairReport, type ReplayStats, type ResolvedHook, type RetryInfo, type RetryOptions, type Role, type RunCommandResult, type RunHooksOptions, type ScavengeOptions, type ScavengeResult, type SearchResult, type SectionResult, type SessionInfo, SessionStats, type SessionSummary, type ShellToolsOptions, type SseMcpSpec, SseTransport, type SseTransportOptions, type StdioMcpSpec, StdioTransport, type StdioTransportOptions, type StepCompletion, StormBreaker, type StreamChunk, type SubagentEvent, type SubagentSink, type SubagentToolOptions, type ToolCall, type ToolCallContext, ToolCallRepair, type ToolCallRepairOptions, type ToolDefinition, type ToolFunctionSpec, ToolRegistry, type ToolSpec, type TranscriptMeta, type TranscriptRecord, type TruncationRepairResult, type TurnPair, type TurnStats, type TypedPlanState, USER_MEMORY_DIR, Usage, type UsageAggregate, type UsageBucket, type UsageRecord, VERSION, VolatileScratch, type WebFetchOptions, type WebSearchOptions, type WebToolsOptions, aggregateBranchUsage, aggregateUsage, analyzeSchema, appendSessionMessage, appendUsage, applyEditBlock, applyEditBlocks, applyMemoryStack, applyProjectMemory, applyUserMemory, bridgeMcpTools, bucketCacheHitRatio, bucketSavingsFraction, claudeEquivalentCost, codeSystemPrompt, compareVersions, computeReplayStats, costUsd, decideOutcome, defaultConfigPath, defaultSelector, defaultUsageLogPath, deleteSession, detectAtPicker, detectShellOperator, diffTranscripts, emptyPlanState, expandAtMentions, fetchWithRetry, fixToolCallPairing, flattenMcpResult, flattenSchema, forkRegistryExcluding, formatCommandResult, formatHookOutcomeMessage, formatLogSize, formatLoopError, formatSearchResults, getLatestVersion, globalSettingsPath, harvest, healLoadedMessages, healLoadedMessagesByTokens, htmlToText, injectPowerShellUtf8, inputCostUsd, inspectMcpServer, isAllowed, isJsonRpcError, isNpxInstall, isPlanStateEmpty, isPlausibleKey, listFilesSync, listFilesWithStatsSync, listSessions, loadApiKey, loadDotenv, loadHooks, loadSessionMessages, matchesTool, memoryEnabled, nestArguments, openTranscriptFile, outputCostUsd, parseEditBlocks, parseMcpSpec, parseMojeekResults, parseTranscript, prepareSpawn, projectHash, projectSettingsPath, quoteForCmdExe, rankPickerCandidates, readConfig, readProjectMemory, readTranscript, readUsageLog, recordFromLoopEvent, redactKey, registerChoiceTool, registerFilesystemTools, registerMemoryTools, registerPlanTool, registerShellTools, registerSubagentTool, registerWebTools, renderMarkdown as renderDiffMarkdown, renderSummaryTable as renderDiffSummary, repairTruncatedJson, replayFromFile, resolveExecutable, restoreSnapshots, runBranches, runCommand, runHooks, sanitizeMemoryName, sanitizeName as sanitizeSessionName, saveApiKey, scavengeToolCalls, sessionPath, sessionsDir, similarity, snapshotBeforeEdits, stripHallucinatedToolMarkup, tokenizeCommand, truncateForModel, truncateForModelByTokens, webFetch, webSearch, withUtf8Codepage, writeConfig, writeMeta, writeRecord };
3948
+ export { AT_MENTION_PATTERN, AT_PICKER_PREFIX, type AggregateOptions, AppendOnlyLog, type AppendUsageInput, type ApplyResult, type ApplyStatus, type AtMentionExpansion, type AtMentionOptions, type BranchOptions, type BranchProgress, type BranchResult, type BranchSample, type BranchSelector, type BranchSummary, type BridgeOptions, type BridgeResult, CODE_SYSTEM_PROMPT, CacheFirstLoop, type CacheFirstLoopOptions, type CallToolResult, type ChatMessage, type ChatResponse, type ChoiceOption, ChoiceRequestedError, type ChoiceToolOptions, DEFAULT_AT_MENTION_MAX_BYTES, DEFAULT_MAX_RESULT_CHARS, DEFAULT_MAX_RESULT_TOKENS, DEFAULT_PICKER_IGNORE_DIRS, DeepSeekClient, type DeepSeekClientOptions, type RenderOptions as DiffRenderOptions, type DiffReport, type DiffSide, type EditBlock, type EditSnapshot, type EventRole, type FileWithStats, type FilesystemToolsOptions, type FlattenDecision, type FlattenOptions, type GetLatestVersionOptions, type GetPromptResult, HOOK_EVENTS, HOOK_SETTINGS_DIRNAME, HOOK_SETTINGS_FILENAME, type HarvestOptions, type HookConfig, type HookEvent, type HookOutcome, type HookPayload, type HookReport, type HookScope, type HookSettings, type HookSpawnInput, type HookSpawnResult, type HookSpawner, ImmutablePrefix, type ImmutablePrefixOptions, type InitializeResult, type InspectionReport, type JSONSchema, type JsonRpcMessage, type JsonRpcRequest, type JsonRpcResponse, LATEST_CACHE_TTL_MS, LATEST_FETCH_TIMEOUT_MS, type ListFilesOptions, type ListPromptsResult, type ListResourcesResult, type ListToolsResult, type LoadHookSettingsOptions, type LoopEvent, MCP_PROTOCOL_VERSION, MEMORY_INDEX_FILE, MEMORY_INDEX_MAX_CHARS, McpClient, type McpClientOptions, type McpContentBlock, type McpProgressHandler, type McpProgressInfo, type McpPrompt, type McpPromptArgument, type McpPromptMessage, type McpPromptResourceBlock, type McpResource, type McpResourceContents, type McpResourceContentsBlob, type McpResourceContentsText, type McpSpec, type McpTool, type McpToolSchema, type McpTransport, type MemoryEntry, type MemoryScope, MemoryStore, type MemoryStoreOptions, type MemoryToolsOptions, type MemoryType, type WriteInput as MemoryWriteInput, NeedsConfirmationError, PROJECT_MEMORY_FILE, PROJECT_MEMORY_MAX_CHARS, type PageContent, type PickerCandidate, PlanCheckpointError, PlanProposedError, PlanRevisionProposedError, type PlanStep, type PlanStepRisk, type PlanToolOptions, type ProgressNotificationParams, type ProjectMemory, type RankPickerOptions, type ReadResourceResult, type ReadTranscriptResult, type ReasonixConfig, type ReconfigurableOptions, type RepairReport, type ReplayStats, type ResolvedHook, type RetryInfo, type RetryOptions, type Role, type RunCommandResult, type RunHooksOptions, type ScavengeOptions, type ScavengeResult, type SearchResult, type SectionResult, type SessionInfo, SessionStats, type SessionSummary, type ShellToolsOptions, type SseMcpSpec, SseTransport, type SseTransportOptions, type StdioMcpSpec, StdioTransport, type StdioTransportOptions, type StepCompletion, StormBreaker, type StreamChunk, type StreamableHttpMcpSpec, StreamableHttpTransport, type StreamableHttpTransportOptions, type SubagentEvent, type SubagentSink, type SubagentToolOptions, type ToolCall, type ToolCallContext, ToolCallRepair, type ToolCallRepairOptions, type ToolDefinition, type ToolFunctionSpec, ToolRegistry, type ToolSpec, type TranscriptMeta, type TranscriptRecord, type TruncationRepairResult, type TurnPair, type TurnStats, type TypedPlanState, USER_MEMORY_DIR, Usage, type UsageAggregate, type UsageBucket, type UsageRecord, VERSION, VolatileScratch, type WebFetchOptions, type WebSearchOptions, type WebToolsOptions, aggregateBranchUsage, aggregateUsage, analyzeSchema, appendSessionMessage, appendUsage, applyEditBlock, applyEditBlocks, applyMemoryStack, applyProjectMemory, applyUserMemory, bridgeMcpTools, bucketCacheHitRatio, bucketSavingsFraction, claudeEquivalentCost, codeSystemPrompt, compareVersions, computeReplayStats, costUsd, decideOutcome, defaultConfigPath, defaultSelector, defaultUsageLogPath, deleteSession, detectAtPicker, detectShellOperator, diffTranscripts, emptyPlanState, expandAtMentions, fetchWithRetry, fixToolCallPairing, flattenMcpResult, flattenSchema, forkRegistryExcluding, formatCommandResult, formatHookOutcomeMessage, formatLogSize, formatLoopError, formatSearchResults, getLatestVersion, globalSettingsPath, harvest, healLoadedMessages, healLoadedMessagesByTokens, htmlToText, injectPowerShellUtf8, inputCostUsd, inspectMcpServer, isAllowed, isJsonRpcError, isNpxInstall, isPlanStateEmpty, isPlausibleKey, listFilesSync, listFilesWithStatsSync, listSessions, loadApiKey, loadDotenv, loadHooks, loadSessionMessages, matchesTool, memoryEnabled, nestArguments, openTranscriptFile, outputCostUsd, parseEditBlocks, parseMcpSpec, parseMojeekResults, parseTranscript, prepareSpawn, projectHash, projectSettingsPath, quoteForCmdExe, rankPickerCandidates, readConfig, readProjectMemory, readTranscript, readUsageLog, recordFromLoopEvent, redactKey, registerChoiceTool, registerFilesystemTools, registerMemoryTools, registerPlanTool, registerShellTools, registerSubagentTool, registerWebTools, renderMarkdown as renderDiffMarkdown, renderSummaryTable as renderDiffSummary, repairTruncatedJson, replayFromFile, resolveExecutable, restoreSnapshots, runBranches, runCommand, runHooks, sanitizeMemoryName, sanitizeName as sanitizeSessionName, saveApiKey, scavengeToolCalls, sessionPath, sessionsDir, similarity, snapshotBeforeEdits, stripHallucinatedToolMarkup, tokenizeCommand, truncateForModel, truncateForModelByTokens, webFetch, webSearch, withUtf8Codepage, writeConfig, writeMeta, writeRecord };