@selesai/code 0.13.26 → 0.13.27
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/CHANGELOG.md +74 -0
- package/dist/cli/args.js +1 -0
- package/dist/cli/session-picker.d.ts +1 -1
- package/dist/config.js +1 -1
- package/dist/core/agent-session-auto-handoff.test.js +2 -1
- package/dist/core/agent-session-length-continuation.test.js +2 -1
- package/dist/core/agent-session.d.ts +58 -7
- package/dist/core/agent-session.js +334 -167
- package/dist/core/bug-report-upload.d.ts +11 -0
- package/dist/core/bug-report-upload.js +21 -0
- package/dist/core/bug-report.d.ts +175 -0
- package/dist/core/bug-report.js +291 -0
- package/dist/core/cache-stats.js +12 -1
- package/dist/core/cache-warmer.d.ts +101 -0
- package/dist/core/cache-warmer.js +341 -0
- package/dist/core/compaction/branch-summarization.js +2 -2
- package/dist/core/compaction/compaction.d.ts +6 -5
- package/dist/core/compaction/compaction.js +49 -42
- package/dist/core/crash-log.d.ts +21 -0
- package/dist/core/crash-log.js +70 -0
- package/dist/core/experimental.d.ts +0 -4
- package/dist/core/experimental.js +0 -4
- package/dist/core/extensions/index.d.ts +1 -1
- package/dist/core/extensions/jiti-loader.d.ts +1 -0
- package/dist/core/extensions/jiti-loader.js +3 -0
- package/dist/core/extensions/jiti-static-loader.d.ts +1 -0
- package/dist/core/extensions/jiti-static-loader.js +3 -0
- package/dist/core/extensions/loader.js +39 -49
- package/dist/core/extensions/runner.d.ts +10 -7
- package/dist/core/extensions/runner.js +85 -67
- package/dist/core/extensions/types.d.ts +66 -52
- package/dist/core/extensions/virtual-modules.d.ts +2 -0
- package/dist/core/extensions/virtual-modules.js +39 -0
- package/dist/core/extensions/wrapper.js +1 -20
- package/dist/core/index.d.ts +2 -1
- package/dist/core/keybindings.d.ts +1 -1
- package/dist/core/keybindings.js +1 -1
- package/dist/core/messages.js +1 -0
- package/dist/core/model-config.d.ts +101 -20
- package/dist/core/model-config.js +25 -18
- package/dist/core/model-resolver.js +2 -1
- package/dist/core/model-runtime.js +5 -3
- package/dist/core/provider-composer.d.ts +7 -2
- package/dist/core/provider-composer.js +10 -5
- package/dist/core/radius.d.ts +3 -0
- package/dist/core/radius.js +6 -0
- package/dist/core/sdk.js +60 -38
- package/dist/core/session-export.d.ts +6 -2
- package/dist/core/session-export.js +14 -13
- package/dist/core/session-format.test.d.ts +1 -0
- package/dist/core/session-format.test.js +96 -0
- package/dist/core/session-manager.d.ts +29 -6
- package/dist/core/session-manager.js +159 -96
- package/dist/core/settings-manager.d.ts +22 -5
- package/dist/core/settings-manager.js +56 -23
- package/dist/core/slash-commands.js +1 -0
- package/dist/core/system-prompt.d.ts +49 -4
- package/dist/core/system-prompt.js +155 -102
- package/dist/core/system-prompt.test.js +61 -23
- package/dist/core/tools/bash.d.ts +2 -1
- package/dist/core/tools/bash.js +10 -4
- package/dist/core/tools/edit.js +1 -2
- package/dist/core/tools/read.js +1 -2
- package/dist/core/tools/renderers/bash.js +9 -1
- package/dist/core/tools/write.js +1 -2
- package/dist/core/usage-totals.d.ts +1 -1
- package/dist/core/usage-totals.js +5 -1
- package/dist/extensions/pi-web-agent/src/backends/factory.ts +14 -6
- package/dist/extensions/pi-web-agent/src/extension.ts +3 -1
- package/dist/extensions/pi-web-agent/src/orchestration/answer-synthesizer.ts +7 -3
- package/dist/extensions/pi-web-agent/src/orchestration/research-orchestrator.ts +3 -0
- package/dist/extensions/pi-web-agent/src/orchestration/research-types.ts +2 -0
- package/dist/extensions/pi-web-agent/src/presentation/explore-presentation.ts +4 -2
- package/dist/extensions/pi-web-agent/src/search/tokenin.ts +4 -1
- package/dist/extensions/pi-web-agent/src/tools/web-explore.ts +2 -1
- package/dist/extensions/pi-web-agent/src/types.ts +4 -0
- package/dist/index.d.ts +3 -2
- package/dist/main.js +13 -9
- package/dist/migrations.js +2 -2
- package/dist/modes/interactive/bug-report.d.ts +15 -0
- package/dist/modes/interactive/bug-report.js +205 -0
- package/dist/modes/interactive/chat-viewport.js +1 -1
- package/dist/modes/interactive/components/branch-summary-message.js +12 -5
- package/dist/modes/interactive/components/compaction-summary-message.js +12 -5
- package/dist/modes/interactive/components/custom-editor.d.ts +3 -3
- package/dist/modes/interactive/components/extension-editor.d.ts +4 -1
- package/dist/modes/interactive/components/extension-editor.js +7 -2
- package/dist/modes/interactive/components/extension-input.d.ts +2 -0
- package/dist/modes/interactive/components/extension-input.js +6 -0
- package/dist/modes/interactive/components/extension-selector.d.ts +1 -0
- package/dist/modes/interactive/components/extension-selector.js +4 -0
- package/dist/modes/interactive/components/footer.js +4 -1
- package/dist/modes/interactive/components/session-selector.d.ts +5 -5
- package/dist/modes/interactive/components/session-selector.js +74 -48
- package/dist/modes/interactive/components/settings-selector.d.ts +3 -1
- package/dist/modes/interactive/components/settings-selector.js +11 -0
- package/dist/modes/interactive/components/skill-invocation-message.js +11 -4
- package/dist/modes/interactive/components/status-indicator.d.ts +2 -2
- package/dist/modes/interactive/components/status-indicator.js +7 -7
- package/dist/modes/interactive/components/tool-execution.js +18 -9
- package/dist/modes/interactive/components/tree-selector.js +2 -0
- package/dist/modes/interactive/interactive-mode.d.ts +15 -2
- package/dist/modes/interactive/interactive-mode.js +257 -81
- package/dist/modes/interactive/session-share.d.ts +2 -0
- package/dist/modes/interactive/session-share.js +8 -4
- package/dist/modes/interactive/tui-renderer.js +2 -2
- package/dist/modes/rpc/rpc-mode.js +2 -2
- package/dist/utils/clipboard-command.d.ts +6 -0
- package/dist/utils/clipboard-command.js +44 -0
- package/dist/utils/clipboard-image.js +55 -89
- package/dist/utils/clipboard.d.ts +1 -1
- package/dist/utils/clipboard.js +118 -108
- package/dist/utils/wsl.d.ts +2 -0
- package/dist/utils/wsl.js +14 -0
- package/dist/utils/zip.d.ts +6 -0
- package/dist/utils/zip.js +59 -0
- package/package.json +9 -9
- package/dist/utils/clipboard-native.d.ts +0 -10
- package/dist/utils/clipboard-native.js +0 -19
|
@@ -8,11 +8,12 @@
|
|
|
8
8
|
* - Interact with the user via UI primitives
|
|
9
9
|
*/
|
|
10
10
|
import type { AgentMessage, AgentToolResult, AgentToolUpdateCallback, ThinkingLevel, ToolExecutionMode } from "@earendil-works/pi-agent-core";
|
|
11
|
-
import type { Api, AssistantMessageEvent, AssistantMessageEventStream, ConstrainedSamplingConfig,
|
|
11
|
+
import type { Api, AssistantMessageEvent, AssistantMessageEventStream, ConstrainedSamplingConfig, ImageContent, Model, OAuthCredentials, OAuthLoginCallbacks, Provider, ProviderHeaders, RefreshModelsContext, SimpleStreamOptions, TextContent, ToolResultMessage, TranscriptContext, Usage } from "@earendil-works/pi-ai";
|
|
12
12
|
import type { AutocompleteItem, AutocompleteProvider, Component, EditorComponent, EditorTheme, KeyId, OverlayHandle, OverlayOptions, TUI } from "@earendil-works/pi-tui";
|
|
13
13
|
import type { Static, TSchema } from "typebox";
|
|
14
14
|
import type { Theme } from "../../modes/interactive/theme/theme.ts";
|
|
15
15
|
import type { BashResult } from "../bash-executor.ts";
|
|
16
|
+
import type { CacheWarmingDecisionEvent, CacheWarmingDecisionEventResult } from "../cache-warmer.ts";
|
|
16
17
|
import type { CompactionPreparation, CompactionResult } from "../compaction/index.ts";
|
|
17
18
|
import type { EventBus } from "../event-bus.ts";
|
|
18
19
|
import type { ExecOptions, ExecResult } from "../exec.ts";
|
|
@@ -25,12 +26,12 @@ import type { BranchSummaryEntry, CompactionEntry, CustomEntry, ReadonlySessionM
|
|
|
25
26
|
import type { SlashCommandInfo } from "../slash-commands.ts";
|
|
26
27
|
import type { Skill } from "../skills.ts";
|
|
27
28
|
import type { SourceInfo } from "../source-info.ts";
|
|
28
|
-
import type { BuildSystemPromptOptions } from "../system-prompt.ts";
|
|
29
|
+
import type { BuildSystemPromptOptions, NormalizedBuildSystemPromptOptions } from "../system-prompt.ts";
|
|
29
30
|
import type { BashOperations } from "../tools/bash.ts";
|
|
30
31
|
import type { EditToolDetails } from "../tools/edit.ts";
|
|
31
32
|
import type { BashToolDetails, BashToolInput, EditToolInput, FindToolDetails, FindToolInput, GrepToolDetails, GrepToolInput, LsToolDetails, LsToolInput, ReadToolDetails, ReadToolInput, WriteToolInput } from "../tools/index.ts";
|
|
32
33
|
export type { ExecOptions, ExecResult } from "../exec.ts";
|
|
33
|
-
export type { BuildSystemPromptOptions } from "../system-prompt.ts";
|
|
34
|
+
export type { BuildSystemPromptOptions, NormalizedBuildSystemPromptOptions } from "../system-prompt.ts";
|
|
34
35
|
export type { AgentToolResult, AgentToolUpdateCallback, ToolExecutionMode };
|
|
35
36
|
export type { AppKeybinding, KeybindingsManager } from "../keybindings.ts";
|
|
36
37
|
/** Options for extension UI dialogs. */
|
|
@@ -560,10 +561,10 @@ export interface BeforeAgentStartEvent {
|
|
|
560
561
|
prompt: string;
|
|
561
562
|
/** Images attached to the user prompt, if any. */
|
|
562
563
|
images?: ImageContent[];
|
|
563
|
-
/** The
|
|
564
|
-
systemPrompt: string;
|
|
565
|
-
/**
|
|
566
|
-
systemPromptOptions:
|
|
564
|
+
/** The current system prompt, rendered from systemPromptOptions and earlier handler changes. */
|
|
565
|
+
readonly systemPrompt: string;
|
|
566
|
+
/** Mutable prompt sections. Later handlers observe mutations made by earlier handlers. */
|
|
567
|
+
systemPromptOptions: NormalizedBuildSystemPromptOptions;
|
|
567
568
|
}
|
|
568
569
|
/** Fired when an agent loop starts */
|
|
569
570
|
export interface AgentStartEvent {
|
|
@@ -818,23 +819,27 @@ export declare function isToolCallEventType<TName extends string, TInput extends
|
|
|
818
819
|
input: TInput;
|
|
819
820
|
};
|
|
820
821
|
/** Union of all event types */
|
|
821
|
-
export type ExtensionEvent = ProjectTrustEvent | ResourcesDiscoverEvent | SessionEvent | ContextEvent | BeforeProviderRequestEvent | BeforeProviderHeadersEvent | AfterProviderResponseEvent | BeforeAgentStartEvent | AgentStartEvent | AgentEndEvent | AgentSettledEvent | UIPromptStartEvent | UIPromptEndEvent | TurnStartEvent | TurnEndEvent | MessageStartEvent | MessageUpdateEvent | MessageEndEvent | ToolExecutionStartEvent | ToolExecutionUpdateEvent | ToolExecutionEndEvent | ModelSelectEvent | ThinkingLevelSelectEvent | UserBashEvent | InputEvent | ToolCallEvent | ToolResultEvent;
|
|
822
|
+
export type ExtensionEvent = ProjectTrustEvent | ResourcesDiscoverEvent | SessionEvent | ContextEvent | CacheWarmingDecisionEvent | BeforeProviderRequestEvent | BeforeProviderHeadersEvent | AfterProviderResponseEvent | BeforeAgentStartEvent | AgentStartEvent | AgentEndEvent | AgentSettledEvent | UIPromptStartEvent | UIPromptEndEvent | TurnStartEvent | TurnEndEvent | MessageStartEvent | MessageUpdateEvent | MessageEndEvent | ToolExecutionStartEvent | ToolExecutionUpdateEvent | ToolExecutionEndEvent | ModelSelectEvent | ThinkingLevelSelectEvent | UserBashEvent | InputEvent | ToolCallEvent | ToolResultEvent;
|
|
822
823
|
export interface ContextEventResult {
|
|
823
824
|
messages?: AgentMessage[];
|
|
824
825
|
}
|
|
825
826
|
export type BeforeProviderRequestEventResult = unknown;
|
|
827
|
+
export type { CacheWarmingDecisionEvent, CacheWarmingDecisionEventResult } from "../cache-warmer.ts";
|
|
826
828
|
export interface ToolCallEventResult {
|
|
827
829
|
/** Block tool execution. To modify arguments, mutate `event.input` in place instead. */
|
|
828
830
|
block?: boolean;
|
|
829
831
|
reason?: string;
|
|
830
832
|
}
|
|
831
833
|
/** Result from user_bash event handler */
|
|
832
|
-
export
|
|
834
|
+
export type UserBashEventResult = {
|
|
833
835
|
/** Custom operations to use for execution */
|
|
834
|
-
operations
|
|
836
|
+
operations: BashOperations;
|
|
837
|
+
result?: never;
|
|
838
|
+
} | {
|
|
839
|
+
operations?: never;
|
|
835
840
|
/** Full replacement: extension handled execution, use this result */
|
|
836
|
-
result
|
|
837
|
-
}
|
|
841
|
+
result: BashResult;
|
|
842
|
+
};
|
|
838
843
|
export interface ToolResultEventResult {
|
|
839
844
|
content?: (TextContent | ImageContent)[];
|
|
840
845
|
details?: unknown;
|
|
@@ -849,7 +854,7 @@ export interface MessageEndEventResult {
|
|
|
849
854
|
}
|
|
850
855
|
export interface BeforeAgentStartEventResult {
|
|
851
856
|
message?: Pick<CustomMessage, "customType" | "content" | "display" | "details">;
|
|
852
|
-
/** Replace the system prompt for this turn.
|
|
857
|
+
/** Replace the complete system prompt for this turn. Later handlers observe this exact override. */
|
|
853
858
|
systemPrompt?: string;
|
|
854
859
|
}
|
|
855
860
|
export interface SessionBeforeSwitchResult {
|
|
@@ -909,43 +914,43 @@ export type ExtensionHandler<E, R = undefined> = (event: E, ctx: ExtensionContex
|
|
|
909
914
|
* ExtensionAPI passed to extension factory functions.
|
|
910
915
|
*/
|
|
911
916
|
export interface ExtensionAPI {
|
|
912
|
-
on(event: "project_trust", handler: ProjectTrustHandler): void;
|
|
913
|
-
on(event: "resources_discover", handler: ExtensionHandler<ResourcesDiscoverEvent, ResourcesDiscoverResult>): void;
|
|
914
|
-
on(event: "session_start", handler: ExtensionHandler<SessionStartEvent>): void;
|
|
915
|
-
on(event: "session_info_changed", handler: ExtensionHandler<SessionInfoChangedEvent>): void;
|
|
916
|
-
on(event: "session_before_switch", handler: ExtensionHandler<SessionBeforeSwitchEvent, SessionBeforeSwitchResult>): void;
|
|
917
|
-
on(event: "session_before_fork", handler: ExtensionHandler<SessionBeforeForkEvent, SessionBeforeForkResult>): void;
|
|
918
|
-
on(event: "session_before_compact", handler: ExtensionHandler<SessionBeforeCompactEvent, SessionBeforeCompactResult>): void;
|
|
919
|
-
on(event: "session_compact", handler: ExtensionHandler<SessionCompactEvent>): void;
|
|
920
|
-
on(event: "session_compact_failed", handler: ExtensionHandler<SessionCompactFailedEvent>): void;
|
|
921
|
-
on(event: "
|
|
922
|
-
on(event: "
|
|
923
|
-
on(event: "
|
|
924
|
-
on(event: "
|
|
925
|
-
on(event: "
|
|
926
|
-
on(event: "before_provider_request", handler: ExtensionHandler<BeforeProviderRequestEvent, BeforeProviderRequestEventResult>): void;
|
|
927
|
-
on(event: "before_provider_headers", handler: ExtensionHandler<BeforeProviderHeadersEvent>): void;
|
|
928
|
-
on(event: "after_provider_response", handler: ExtensionHandler<AfterProviderResponseEvent>): void;
|
|
929
|
-
on(event: "before_agent_start", handler: ExtensionHandler<BeforeAgentStartEvent, BeforeAgentStartEventResult>): void;
|
|
930
|
-
on(event: "agent_start", handler: ExtensionHandler<AgentStartEvent>): void;
|
|
931
|
-
on(event: "agent_end", handler: ExtensionHandler<AgentEndEvent>): void;
|
|
932
|
-
on(event: "agent_settled", handler: ExtensionHandler<AgentSettledEvent>): void;
|
|
933
|
-
on(event: "ui_prompt_start", handler: ExtensionHandler<UIPromptStartEvent>): void;
|
|
934
|
-
on(event: "ui_prompt_end", handler: ExtensionHandler<UIPromptEndEvent>): void;
|
|
935
|
-
on(event: "turn_start", handler: ExtensionHandler<TurnStartEvent>): void;
|
|
936
|
-
on(event: "turn_end", handler: ExtensionHandler<TurnEndEvent>): void;
|
|
937
|
-
on(event: "message_start", handler: ExtensionHandler<MessageStartEvent>): void;
|
|
938
|
-
on(event: "message_update", handler: ExtensionHandler<MessageUpdateEvent>): void;
|
|
939
|
-
on(event: "message_end", handler: ExtensionHandler<MessageEndEvent, MessageEndEventResult>): void;
|
|
940
|
-
on(event: "tool_execution_start", handler: ExtensionHandler<ToolExecutionStartEvent>): void;
|
|
941
|
-
on(event: "tool_execution_update", handler: ExtensionHandler<ToolExecutionUpdateEvent>): void;
|
|
942
|
-
on(event: "tool_execution_end", handler: ExtensionHandler<ToolExecutionEndEvent>): void;
|
|
943
|
-
on(event: "model_select", handler: ExtensionHandler<ModelSelectEvent>): void;
|
|
944
|
-
on(event: "thinking_level_select", handler: ExtensionHandler<ThinkingLevelSelectEvent>): void;
|
|
945
|
-
on(event: "tool_call", handler: ExtensionHandler<ToolCallEvent, ToolCallEventResult>): void;
|
|
946
|
-
on(event: "tool_result", handler: ExtensionHandler<ToolResultEvent, ToolResultEventResult>): void;
|
|
947
|
-
on(event: "user_bash", handler: ExtensionHandler<UserBashEvent, UserBashEventResult>): void;
|
|
948
|
-
on(event: "input", handler: ExtensionHandler<InputEvent, InputEventResult>): void;
|
|
917
|
+
on(event: "project_trust", handler: ProjectTrustHandler): () => void;
|
|
918
|
+
on(event: "resources_discover", handler: ExtensionHandler<ResourcesDiscoverEvent, ResourcesDiscoverResult>): () => void;
|
|
919
|
+
on(event: "session_start", handler: ExtensionHandler<SessionStartEvent>): () => void;
|
|
920
|
+
on(event: "session_info_changed", handler: ExtensionHandler<SessionInfoChangedEvent>): () => void;
|
|
921
|
+
on(event: "session_before_switch", handler: ExtensionHandler<SessionBeforeSwitchEvent, SessionBeforeSwitchResult>): () => void;
|
|
922
|
+
on(event: "session_before_fork", handler: ExtensionHandler<SessionBeforeForkEvent, SessionBeforeForkResult>): () => void;
|
|
923
|
+
on(event: "session_before_compact", handler: ExtensionHandler<SessionBeforeCompactEvent, SessionBeforeCompactResult>): () => void;
|
|
924
|
+
on(event: "session_compact", handler: ExtensionHandler<SessionCompactEvent>): () => void;
|
|
925
|
+
on(event: "session_compact_failed", handler: ExtensionHandler<SessionCompactFailedEvent>): () => void;
|
|
926
|
+
on(event: "session_shutdown", handler: ExtensionHandler<SessionShutdownEvent>): () => void;
|
|
927
|
+
on(event: "session_before_tree", handler: ExtensionHandler<SessionBeforeTreeEvent, SessionBeforeTreeResult>): () => void;
|
|
928
|
+
on(event: "session_tree", handler: ExtensionHandler<SessionTreeEvent>): () => void;
|
|
929
|
+
on(event: "context", handler: ExtensionHandler<ContextEvent, ContextEventResult>): () => void;
|
|
930
|
+
on(event: "cache_warming_decision", handler: ExtensionHandler<CacheWarmingDecisionEvent, CacheWarmingDecisionEventResult>): () => void;
|
|
931
|
+
on(event: "before_provider_request", handler: ExtensionHandler<BeforeProviderRequestEvent, BeforeProviderRequestEventResult>): () => void;
|
|
932
|
+
on(event: "before_provider_headers", handler: ExtensionHandler<BeforeProviderHeadersEvent>): () => void;
|
|
933
|
+
on(event: "after_provider_response", handler: ExtensionHandler<AfterProviderResponseEvent>): () => void;
|
|
934
|
+
on(event: "before_agent_start", handler: ExtensionHandler<BeforeAgentStartEvent, BeforeAgentStartEventResult>): () => void;
|
|
935
|
+
on(event: "agent_start", handler: ExtensionHandler<AgentStartEvent>): () => void;
|
|
936
|
+
on(event: "agent_end", handler: ExtensionHandler<AgentEndEvent>): () => void;
|
|
937
|
+
on(event: "agent_settled", handler: ExtensionHandler<AgentSettledEvent>): () => void;
|
|
938
|
+
on(event: "ui_prompt_start", handler: ExtensionHandler<UIPromptStartEvent>): () => void;
|
|
939
|
+
on(event: "ui_prompt_end", handler: ExtensionHandler<UIPromptEndEvent>): () => void;
|
|
940
|
+
on(event: "turn_start", handler: ExtensionHandler<TurnStartEvent>): () => void;
|
|
941
|
+
on(event: "turn_end", handler: ExtensionHandler<TurnEndEvent>): () => void;
|
|
942
|
+
on(event: "message_start", handler: ExtensionHandler<MessageStartEvent>): () => void;
|
|
943
|
+
on(event: "message_update", handler: ExtensionHandler<MessageUpdateEvent>): () => void;
|
|
944
|
+
on(event: "message_end", handler: ExtensionHandler<MessageEndEvent, MessageEndEventResult>): () => void;
|
|
945
|
+
on(event: "tool_execution_start", handler: ExtensionHandler<ToolExecutionStartEvent>): () => void;
|
|
946
|
+
on(event: "tool_execution_update", handler: ExtensionHandler<ToolExecutionUpdateEvent>): () => void;
|
|
947
|
+
on(event: "tool_execution_end", handler: ExtensionHandler<ToolExecutionEndEvent>): () => void;
|
|
948
|
+
on(event: "model_select", handler: ExtensionHandler<ModelSelectEvent>): () => void;
|
|
949
|
+
on(event: "thinking_level_select", handler: ExtensionHandler<ThinkingLevelSelectEvent>): () => void;
|
|
950
|
+
on(event: "tool_call", handler: ExtensionHandler<ToolCallEvent, ToolCallEventResult>): () => void;
|
|
951
|
+
on(event: "tool_result", handler: ExtensionHandler<ToolResultEvent, ToolResultEventResult>): () => void;
|
|
952
|
+
on(event: "user_bash", handler: ExtensionHandler<UserBashEvent, UserBashEventResult>): () => void;
|
|
953
|
+
on(event: "input", handler: ExtensionHandler<InputEvent, InputEventResult>): () => void;
|
|
949
954
|
/** Register a tool that the LLM can call. */
|
|
950
955
|
registerTool<TParams extends TSchema = TSchema, TDetails = unknown, TState = any>(tool: ToolDefinition<TParams, TDetails, TState>): void;
|
|
951
956
|
/** Register a custom command. */
|
|
@@ -1108,8 +1113,15 @@ export interface ProviderConfig {
|
|
|
1108
1113
|
apiKey?: string;
|
|
1109
1114
|
/** API type. Required at provider or model level when defining models. */
|
|
1110
1115
|
api?: Api;
|
|
1111
|
-
/**
|
|
1112
|
-
|
|
1116
|
+
/**
|
|
1117
|
+
* Optional streamSimple handler for custom APIs.
|
|
1118
|
+
* The context is a normalized transcript: read the prompt and tools from its system messages
|
|
1119
|
+
* (`getCurrentSystemPrompt(context.messages)`, `getCurrentTools(context.messages)`).
|
|
1120
|
+
* Implementations must invoke `options.onPayload` before sending the provider request and use any
|
|
1121
|
+
* returned replacement payload. They must invoke `options.onResponse` after receiving the response
|
|
1122
|
+
* and before consuming its body, matching built-in providers.
|
|
1123
|
+
*/
|
|
1124
|
+
streamSimple?: (model: Model<Api>, context: TranscriptContext, options?: SimpleStreamOptions) => AssistantMessageEventStream;
|
|
1113
1125
|
/** Custom headers to include in requests. */
|
|
1114
1126
|
headers?: Record<string, string>;
|
|
1115
1127
|
/** If true, adds Authorization: Bearer header with the resolved API key. */
|
|
@@ -1155,6 +1167,8 @@ export interface ProviderModelConfig {
|
|
|
1155
1167
|
input: ("text" | "image")[];
|
|
1156
1168
|
/** Per-million-token cost rates and optional request-wide input pricing tiers. */
|
|
1157
1169
|
cost: Model<Api>["cost"];
|
|
1170
|
+
/** Best-effort prompt cache lifetime in seconds per retention tier. Unset disables cache warming. */
|
|
1171
|
+
promptCache?: Model<Api>["promptCache"];
|
|
1158
1172
|
/** Maximum context window size in tokens. */
|
|
1159
1173
|
contextWindow: number;
|
|
1160
1174
|
/** Maximum output tokens. */
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import * as bundledPiAgentCore from "@earendil-works/pi-agent-core";
|
|
2
|
+
import * as bundledPiAiCompat from "@earendil-works/pi-ai/compat";
|
|
3
|
+
import * as bundledPiAiOauth from "@earendil-works/pi-ai/oauth";
|
|
4
|
+
import * as bundledPiAiProviders from "@earendil-works/pi-ai/providers/all";
|
|
5
|
+
import * as bundledPiTui from "@earendil-works/pi-tui";
|
|
6
|
+
import * as bundledTypebox from "typebox";
|
|
7
|
+
import * as bundledTypeboxCompile from "typebox/compile";
|
|
8
|
+
import * as bundledTypeboxValue from "typebox/value";
|
|
9
|
+
// This import is safe because loader.ts exports are not re-exported from index.ts.
|
|
10
|
+
// Extensions can therefore import from @earendil-works/pi-coding-agent.
|
|
11
|
+
import * as bundledPiCodingAgent from "../../index.js";
|
|
12
|
+
/** Modules available to extensions in source and compiled binary runtimes. */
|
|
13
|
+
export const VIRTUAL_MODULES = {
|
|
14
|
+
typebox: bundledTypebox,
|
|
15
|
+
"typebox/compile": bundledTypeboxCompile,
|
|
16
|
+
"typebox/value": bundledTypeboxValue,
|
|
17
|
+
"@sinclair/typebox": bundledTypebox,
|
|
18
|
+
"@sinclair/typebox/compile": bundledTypeboxCompile,
|
|
19
|
+
"@sinclair/typebox/value": bundledTypeboxValue,
|
|
20
|
+
"@earendil-works/pi-agent-core": bundledPiAgentCore,
|
|
21
|
+
"@earendil-works/pi-tui": bundledPiTui,
|
|
22
|
+
// Extensions resolve the pi-ai root to the compat entrypoint (a strict
|
|
23
|
+
// superset of the core entrypoint): existing extensions using the old
|
|
24
|
+
// global API keep working at runtime until compat is removed.
|
|
25
|
+
"@earendil-works/pi-ai": bundledPiAiCompat,
|
|
26
|
+
"@earendil-works/pi-ai/compat": bundledPiAiCompat,
|
|
27
|
+
"@earendil-works/pi-ai/oauth": bundledPiAiOauth,
|
|
28
|
+
"@earendil-works/pi-ai/providers/all": bundledPiAiProviders,
|
|
29
|
+
"@earendil-works/pi-coding-agent": bundledPiCodingAgent,
|
|
30
|
+
// Selesai fork: in-tree extensions may import this fork's own package name.
|
|
31
|
+
"@selesai/code": bundledPiCodingAgent,
|
|
32
|
+
"@mariozechner/pi-agent-core": bundledPiAgentCore,
|
|
33
|
+
"@mariozechner/pi-tui": bundledPiTui,
|
|
34
|
+
"@mariozechner/pi-ai": bundledPiAiCompat,
|
|
35
|
+
"@mariozechner/pi-ai/compat": bundledPiAiCompat,
|
|
36
|
+
"@mariozechner/pi-ai/oauth": bundledPiAiOauth,
|
|
37
|
+
"@mariozechner/pi-ai/providers/all": bundledPiAiProviders,
|
|
38
|
+
"@mariozechner/pi-coding-agent": bundledPiCodingAgent,
|
|
39
|
+
};
|
|
@@ -10,26 +10,7 @@ import { wrapToolDefinition } from "../tools/tool-definition-wrapper.js";
|
|
|
10
10
|
* Uses the runner's createContext() for consistent context across tools and event handlers.
|
|
11
11
|
*/
|
|
12
12
|
export function wrapRegisteredTool(registeredTool, runner) {
|
|
13
|
-
|
|
14
|
-
const execute = tool.execute;
|
|
15
|
-
return {
|
|
16
|
-
...tool,
|
|
17
|
-
execute: async (toolCallId, params, signal, onUpdate) => {
|
|
18
|
-
const activeBefore = runner.getActiveTools();
|
|
19
|
-
const result = await execute(toolCallId, params, signal, onUpdate);
|
|
20
|
-
const activeAfter = runner.getActiveTools();
|
|
21
|
-
if (!activeBefore.every((name) => activeAfter.includes(name)))
|
|
22
|
-
return result;
|
|
23
|
-
const beforeNames = new Set(activeBefore);
|
|
24
|
-
const addedToolNames = activeAfter.filter((name) => !beforeNames.has(name));
|
|
25
|
-
if (addedToolNames.length === 0)
|
|
26
|
-
return result;
|
|
27
|
-
return {
|
|
28
|
-
...result,
|
|
29
|
-
addedToolNames: [...new Set([...(result.addedToolNames ?? []), ...addedToolNames])],
|
|
30
|
-
};
|
|
31
|
-
},
|
|
32
|
-
};
|
|
13
|
+
return wrapToolDefinition(registeredTool.definition, () => runner.createContext());
|
|
33
14
|
}
|
|
34
15
|
/**
|
|
35
16
|
* Wrap all registered tools into AgentTools.
|
package/dist/core/index.d.ts
CHANGED
|
@@ -5,8 +5,9 @@ export { AgentSession, type AgentSessionConfig, type AgentSessionEvent, type Age
|
|
|
5
5
|
export { AgentSessionRuntime, type CreateAgentSessionRuntimeFactory, type CreateAgentSessionRuntimeResult, createAgentSessionRuntime, } from "./agent-session-runtime.ts";
|
|
6
6
|
export { type AgentSessionRuntimeDiagnostic, type AgentSessionServices, type CreateAgentSessionFromServicesOptions, type CreateAgentSessionServicesOptions, createAgentSessionFromServices, createAgentSessionServices, } from "./agent-session-services.ts";
|
|
7
7
|
export { type BashExecutorOptions, type BashResult, executeBashWithOperations } from "./bash-executor.ts";
|
|
8
|
+
export type { CacheWarmingDecision, CacheWarmingStatus } from "./cache-warmer.ts";
|
|
8
9
|
export type { CompactionResult } from "./compaction/index.ts";
|
|
9
10
|
export { createEventBus, type EventBus, type EventBusController } from "./event-bus.ts";
|
|
10
11
|
export { areExperimentalFeaturesEnabled } from "./experimental.ts";
|
|
11
|
-
export { type AgentEndEvent, type AgentSettledEvent, type AgentStartEvent, type AgentToolResult, type AgentToolUpdateCallback, type BeforeAgentStartEvent, type BeforeAgentStartEventResult, type BuildSystemPromptOptions, type ContextEvent, defineTool, discoverAndLoadExtensions, type ExecOptions, type ExecResult, type Extension, type ExtensionAPI, type ExtensionCommandContext, type ExtensionContext, type ExtensionError, type ExtensionEvent, type ExtensionFactory, type ExtensionFlag, type ExtensionHandler, ExtensionRunner, type ExtensionShortcut, type ExtensionUIContext, type InlineExtension, type LoadExtensionsResult, type MessageRenderer, type RegisteredCommand, type SessionBeforeCompactEvent, type SessionBeforeForkEvent, type SessionBeforeSwitchEvent, type SessionBeforeTreeEvent, type SessionCompactEvent, type SessionShutdownEvent, type SessionStartEvent, type SessionTreeEvent, type ToolCallEvent, type ToolCallEventResult, type ToolDefinition, type ToolRenderResultOptions, type ToolResultEvent, type TurnEndEvent, type TurnStartEvent, type WorkingIndicatorOptions, } from "./extensions/index.ts";
|
|
12
|
+
export { type AgentEndEvent, type AgentSettledEvent, type AgentStartEvent, type AgentToolResult, type AgentToolUpdateCallback, type BeforeAgentStartEvent, type BeforeAgentStartEventResult, type BuildSystemPromptOptions, type CacheWarmingDecisionEvent, type CacheWarmingDecisionEventResult, type ContextEvent, defineTool, discoverAndLoadExtensions, type ExecOptions, type ExecResult, type Extension, type ExtensionAPI, type ExtensionCommandContext, type ExtensionContext, type ExtensionError, type ExtensionEvent, type ExtensionFactory, type ExtensionFlag, type ExtensionHandler, ExtensionRunner, type ExtensionShortcut, type ExtensionUIContext, type InlineExtension, type LoadExtensionsResult, type MessageRenderer, type NormalizedBuildSystemPromptOptions, type RegisteredCommand, type SessionBeforeCompactEvent, type SessionBeforeForkEvent, type SessionBeforeSwitchEvent, type SessionBeforeTreeEvent, type SessionCompactEvent, type SessionShutdownEvent, type SessionStartEvent, type SessionTreeEvent, type ToolCallEvent, type ToolCallEventResult, type ToolDefinition, type ToolRenderResultOptions, type ToolResultEvent, type TurnEndEvent, type TurnStartEvent, type WorkingIndicatorOptions, } from "./extensions/index.ts";
|
|
12
13
|
export { createSyntheticSourceInfo } from "./source-info.ts";
|
|
@@ -292,7 +292,7 @@ export declare const KEYBINDINGS: {
|
|
|
292
292
|
};
|
|
293
293
|
readonly "app.message.copy": {
|
|
294
294
|
readonly defaultKeys: "ctrl+x";
|
|
295
|
-
readonly description: "Copy
|
|
295
|
+
readonly description: "Copy selection or last assistant message";
|
|
296
296
|
};
|
|
297
297
|
readonly "app.message.followUp": {
|
|
298
298
|
readonly defaultKeys: "alt+enter";
|
package/dist/core/keybindings.js
CHANGED
package/dist/core/messages.js
CHANGED
|
@@ -29,6 +29,10 @@ declare const ModelDefinitionSchema: Type.TObject<{
|
|
|
29
29
|
inputTokensAbove: Type.TNumber;
|
|
30
30
|
}>>>;
|
|
31
31
|
}>>;
|
|
32
|
+
promptCache: Type.TOptional<Type.TObject<{
|
|
33
|
+
short: Type.TOptional<Type.TNumber>;
|
|
34
|
+
long: Type.TOptional<Type.TNumber>;
|
|
35
|
+
}>>;
|
|
32
36
|
contextWindow: Type.TOptional<Type.TNumber>;
|
|
33
37
|
maxTokens: Type.TOptional<Type.TNumber>;
|
|
34
38
|
headers: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
|
|
@@ -89,7 +93,6 @@ declare const ModelDefinitionSchema: Type.TObject<{
|
|
|
89
93
|
supportsOpenAIGrammarTools: Type.TOptional<Type.TBoolean>;
|
|
90
94
|
supportsStrictMode: Type.TOptional<Type.TBoolean>;
|
|
91
95
|
sendSessionAffinityHeaders: Type.TOptional<Type.TBoolean>;
|
|
92
|
-
deferredToolsMode: Type.TOptional<Type.TLiteral<"kimi">>;
|
|
93
96
|
sessionAffinityFormat: Type.TOptional<Type.TUnion<[Type.TLiteral<"openai">, Type.TLiteral<"openai-nosession">, Type.TLiteral<"openrouter">]>>;
|
|
94
97
|
supportsLongCacheRetention: Type.TOptional<Type.TBoolean>;
|
|
95
98
|
vllmPriority: Type.TOptional<Type.TNumber>;
|
|
@@ -99,8 +102,6 @@ declare const ModelDefinitionSchema: Type.TObject<{
|
|
|
99
102
|
supportsLongCacheRetention: Type.TOptional<Type.TBoolean>;
|
|
100
103
|
supportsStrictMode: Type.TOptional<Type.TBoolean>;
|
|
101
104
|
supportsOpenAIGrammarTools: Type.TOptional<Type.TBoolean>;
|
|
102
|
-
supportsAdditionalTools: Type.TOptional<Type.TBoolean>;
|
|
103
|
-
supportsToolSearch: Type.TOptional<Type.TBoolean>;
|
|
104
105
|
supportsMaxOutputTokens: Type.TOptional<Type.TBoolean>;
|
|
105
106
|
}>, Type.TObject<{
|
|
106
107
|
supportsEagerToolInputStreaming: Type.TOptional<Type.TBoolean>;
|
|
@@ -112,7 +113,23 @@ declare const ModelDefinitionSchema: Type.TObject<{
|
|
|
112
113
|
allowEmptySignature: Type.TOptional<Type.TBoolean>;
|
|
113
114
|
supportsStrictTools: Type.TOptional<Type.TBoolean>;
|
|
114
115
|
supportsMidConvoEffort: Type.TOptional<Type.TBoolean>;
|
|
115
|
-
|
|
116
|
+
allowedFallbackModels: Type.TOptional<Type.TArray<Type.TObject<{
|
|
117
|
+
provider: Type.TString;
|
|
118
|
+
model: Type.TString;
|
|
119
|
+
cost: Type.TObject<{
|
|
120
|
+
input: Type.TNumber;
|
|
121
|
+
output: Type.TNumber;
|
|
122
|
+
cacheRead: Type.TNumber;
|
|
123
|
+
cacheWrite: Type.TNumber;
|
|
124
|
+
tiers: Type.TOptional<Type.TArray<Type.TObject<{
|
|
125
|
+
input: Type.TNumber;
|
|
126
|
+
output: Type.TNumber;
|
|
127
|
+
cacheRead: Type.TNumber;
|
|
128
|
+
cacheWrite: Type.TNumber;
|
|
129
|
+
inputTokensAbove: Type.TNumber;
|
|
130
|
+
}>>>;
|
|
131
|
+
}>;
|
|
132
|
+
}>>>;
|
|
116
133
|
}>]>>;
|
|
117
134
|
}>;
|
|
118
135
|
declare const ModelOverrideSchema: Type.TObject<{
|
|
@@ -141,6 +158,10 @@ declare const ModelOverrideSchema: Type.TObject<{
|
|
|
141
158
|
inputTokensAbove: Type.TNumber;
|
|
142
159
|
}>>>;
|
|
143
160
|
}>>;
|
|
161
|
+
promptCache: Type.TOptional<Type.TObject<{
|
|
162
|
+
short: Type.TOptional<Type.TNumber>;
|
|
163
|
+
long: Type.TOptional<Type.TNumber>;
|
|
164
|
+
}>>;
|
|
144
165
|
contextWindow: Type.TOptional<Type.TNumber>;
|
|
145
166
|
maxTokens: Type.TOptional<Type.TNumber>;
|
|
146
167
|
headers: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
|
|
@@ -201,7 +222,6 @@ declare const ModelOverrideSchema: Type.TObject<{
|
|
|
201
222
|
supportsOpenAIGrammarTools: Type.TOptional<Type.TBoolean>;
|
|
202
223
|
supportsStrictMode: Type.TOptional<Type.TBoolean>;
|
|
203
224
|
sendSessionAffinityHeaders: Type.TOptional<Type.TBoolean>;
|
|
204
|
-
deferredToolsMode: Type.TOptional<Type.TLiteral<"kimi">>;
|
|
205
225
|
sessionAffinityFormat: Type.TOptional<Type.TUnion<[Type.TLiteral<"openai">, Type.TLiteral<"openai-nosession">, Type.TLiteral<"openrouter">]>>;
|
|
206
226
|
supportsLongCacheRetention: Type.TOptional<Type.TBoolean>;
|
|
207
227
|
vllmPriority: Type.TOptional<Type.TNumber>;
|
|
@@ -211,8 +231,6 @@ declare const ModelOverrideSchema: Type.TObject<{
|
|
|
211
231
|
supportsLongCacheRetention: Type.TOptional<Type.TBoolean>;
|
|
212
232
|
supportsStrictMode: Type.TOptional<Type.TBoolean>;
|
|
213
233
|
supportsOpenAIGrammarTools: Type.TOptional<Type.TBoolean>;
|
|
214
|
-
supportsAdditionalTools: Type.TOptional<Type.TBoolean>;
|
|
215
|
-
supportsToolSearch: Type.TOptional<Type.TBoolean>;
|
|
216
234
|
supportsMaxOutputTokens: Type.TOptional<Type.TBoolean>;
|
|
217
235
|
}>, Type.TObject<{
|
|
218
236
|
supportsEagerToolInputStreaming: Type.TOptional<Type.TBoolean>;
|
|
@@ -224,7 +242,23 @@ declare const ModelOverrideSchema: Type.TObject<{
|
|
|
224
242
|
allowEmptySignature: Type.TOptional<Type.TBoolean>;
|
|
225
243
|
supportsStrictTools: Type.TOptional<Type.TBoolean>;
|
|
226
244
|
supportsMidConvoEffort: Type.TOptional<Type.TBoolean>;
|
|
227
|
-
|
|
245
|
+
allowedFallbackModels: Type.TOptional<Type.TArray<Type.TObject<{
|
|
246
|
+
provider: Type.TString;
|
|
247
|
+
model: Type.TString;
|
|
248
|
+
cost: Type.TObject<{
|
|
249
|
+
input: Type.TNumber;
|
|
250
|
+
output: Type.TNumber;
|
|
251
|
+
cacheRead: Type.TNumber;
|
|
252
|
+
cacheWrite: Type.TNumber;
|
|
253
|
+
tiers: Type.TOptional<Type.TArray<Type.TObject<{
|
|
254
|
+
input: Type.TNumber;
|
|
255
|
+
output: Type.TNumber;
|
|
256
|
+
cacheRead: Type.TNumber;
|
|
257
|
+
cacheWrite: Type.TNumber;
|
|
258
|
+
inputTokensAbove: Type.TNumber;
|
|
259
|
+
}>>>;
|
|
260
|
+
}>;
|
|
261
|
+
}>>>;
|
|
228
262
|
}>]>>;
|
|
229
263
|
}>;
|
|
230
264
|
declare const ProviderConfigSchema: Type.TObject<{
|
|
@@ -291,7 +325,6 @@ declare const ProviderConfigSchema: Type.TObject<{
|
|
|
291
325
|
supportsOpenAIGrammarTools: Type.TOptional<Type.TBoolean>;
|
|
292
326
|
supportsStrictMode: Type.TOptional<Type.TBoolean>;
|
|
293
327
|
sendSessionAffinityHeaders: Type.TOptional<Type.TBoolean>;
|
|
294
|
-
deferredToolsMode: Type.TOptional<Type.TLiteral<"kimi">>;
|
|
295
328
|
sessionAffinityFormat: Type.TOptional<Type.TUnion<[Type.TLiteral<"openai">, Type.TLiteral<"openai-nosession">, Type.TLiteral<"openrouter">]>>;
|
|
296
329
|
supportsLongCacheRetention: Type.TOptional<Type.TBoolean>;
|
|
297
330
|
vllmPriority: Type.TOptional<Type.TNumber>;
|
|
@@ -301,8 +334,6 @@ declare const ProviderConfigSchema: Type.TObject<{
|
|
|
301
334
|
supportsLongCacheRetention: Type.TOptional<Type.TBoolean>;
|
|
302
335
|
supportsStrictMode: Type.TOptional<Type.TBoolean>;
|
|
303
336
|
supportsOpenAIGrammarTools: Type.TOptional<Type.TBoolean>;
|
|
304
|
-
supportsAdditionalTools: Type.TOptional<Type.TBoolean>;
|
|
305
|
-
supportsToolSearch: Type.TOptional<Type.TBoolean>;
|
|
306
337
|
supportsMaxOutputTokens: Type.TOptional<Type.TBoolean>;
|
|
307
338
|
}>, Type.TObject<{
|
|
308
339
|
supportsEagerToolInputStreaming: Type.TOptional<Type.TBoolean>;
|
|
@@ -314,7 +345,23 @@ declare const ProviderConfigSchema: Type.TObject<{
|
|
|
314
345
|
allowEmptySignature: Type.TOptional<Type.TBoolean>;
|
|
315
346
|
supportsStrictTools: Type.TOptional<Type.TBoolean>;
|
|
316
347
|
supportsMidConvoEffort: Type.TOptional<Type.TBoolean>;
|
|
317
|
-
|
|
348
|
+
allowedFallbackModels: Type.TOptional<Type.TArray<Type.TObject<{
|
|
349
|
+
provider: Type.TString;
|
|
350
|
+
model: Type.TString;
|
|
351
|
+
cost: Type.TObject<{
|
|
352
|
+
input: Type.TNumber;
|
|
353
|
+
output: Type.TNumber;
|
|
354
|
+
cacheRead: Type.TNumber;
|
|
355
|
+
cacheWrite: Type.TNumber;
|
|
356
|
+
tiers: Type.TOptional<Type.TArray<Type.TObject<{
|
|
357
|
+
input: Type.TNumber;
|
|
358
|
+
output: Type.TNumber;
|
|
359
|
+
cacheRead: Type.TNumber;
|
|
360
|
+
cacheWrite: Type.TNumber;
|
|
361
|
+
inputTokensAbove: Type.TNumber;
|
|
362
|
+
}>>>;
|
|
363
|
+
}>;
|
|
364
|
+
}>>>;
|
|
318
365
|
}>]>>;
|
|
319
366
|
authHeader: Type.TOptional<Type.TBoolean>;
|
|
320
367
|
models: Type.TOptional<Type.TArray<Type.TObject<{
|
|
@@ -346,6 +393,10 @@ declare const ProviderConfigSchema: Type.TObject<{
|
|
|
346
393
|
inputTokensAbove: Type.TNumber;
|
|
347
394
|
}>>>;
|
|
348
395
|
}>>;
|
|
396
|
+
promptCache: Type.TOptional<Type.TObject<{
|
|
397
|
+
short: Type.TOptional<Type.TNumber>;
|
|
398
|
+
long: Type.TOptional<Type.TNumber>;
|
|
399
|
+
}>>;
|
|
349
400
|
contextWindow: Type.TOptional<Type.TNumber>;
|
|
350
401
|
maxTokens: Type.TOptional<Type.TNumber>;
|
|
351
402
|
headers: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
|
|
@@ -406,7 +457,6 @@ declare const ProviderConfigSchema: Type.TObject<{
|
|
|
406
457
|
supportsOpenAIGrammarTools: Type.TOptional<Type.TBoolean>;
|
|
407
458
|
supportsStrictMode: Type.TOptional<Type.TBoolean>;
|
|
408
459
|
sendSessionAffinityHeaders: Type.TOptional<Type.TBoolean>;
|
|
409
|
-
deferredToolsMode: Type.TOptional<Type.TLiteral<"kimi">>;
|
|
410
460
|
sessionAffinityFormat: Type.TOptional<Type.TUnion<[Type.TLiteral<"openai">, Type.TLiteral<"openai-nosession">, Type.TLiteral<"openrouter">]>>;
|
|
411
461
|
supportsLongCacheRetention: Type.TOptional<Type.TBoolean>;
|
|
412
462
|
vllmPriority: Type.TOptional<Type.TNumber>;
|
|
@@ -416,8 +466,6 @@ declare const ProviderConfigSchema: Type.TObject<{
|
|
|
416
466
|
supportsLongCacheRetention: Type.TOptional<Type.TBoolean>;
|
|
417
467
|
supportsStrictMode: Type.TOptional<Type.TBoolean>;
|
|
418
468
|
supportsOpenAIGrammarTools: Type.TOptional<Type.TBoolean>;
|
|
419
|
-
supportsAdditionalTools: Type.TOptional<Type.TBoolean>;
|
|
420
|
-
supportsToolSearch: Type.TOptional<Type.TBoolean>;
|
|
421
469
|
supportsMaxOutputTokens: Type.TOptional<Type.TBoolean>;
|
|
422
470
|
}>, Type.TObject<{
|
|
423
471
|
supportsEagerToolInputStreaming: Type.TOptional<Type.TBoolean>;
|
|
@@ -429,7 +477,23 @@ declare const ProviderConfigSchema: Type.TObject<{
|
|
|
429
477
|
allowEmptySignature: Type.TOptional<Type.TBoolean>;
|
|
430
478
|
supportsStrictTools: Type.TOptional<Type.TBoolean>;
|
|
431
479
|
supportsMidConvoEffort: Type.TOptional<Type.TBoolean>;
|
|
432
|
-
|
|
480
|
+
allowedFallbackModels: Type.TOptional<Type.TArray<Type.TObject<{
|
|
481
|
+
provider: Type.TString;
|
|
482
|
+
model: Type.TString;
|
|
483
|
+
cost: Type.TObject<{
|
|
484
|
+
input: Type.TNumber;
|
|
485
|
+
output: Type.TNumber;
|
|
486
|
+
cacheRead: Type.TNumber;
|
|
487
|
+
cacheWrite: Type.TNumber;
|
|
488
|
+
tiers: Type.TOptional<Type.TArray<Type.TObject<{
|
|
489
|
+
input: Type.TNumber;
|
|
490
|
+
output: Type.TNumber;
|
|
491
|
+
cacheRead: Type.TNumber;
|
|
492
|
+
cacheWrite: Type.TNumber;
|
|
493
|
+
inputTokensAbove: Type.TNumber;
|
|
494
|
+
}>>>;
|
|
495
|
+
}>;
|
|
496
|
+
}>>>;
|
|
433
497
|
}>]>>;
|
|
434
498
|
}>>>;
|
|
435
499
|
modelOverrides: Type.TOptional<Type.TRecord<"^.*$", Type.TObject<{
|
|
@@ -458,6 +522,10 @@ declare const ProviderConfigSchema: Type.TObject<{
|
|
|
458
522
|
inputTokensAbove: Type.TNumber;
|
|
459
523
|
}>>>;
|
|
460
524
|
}>>;
|
|
525
|
+
promptCache: Type.TOptional<Type.TObject<{
|
|
526
|
+
short: Type.TOptional<Type.TNumber>;
|
|
527
|
+
long: Type.TOptional<Type.TNumber>;
|
|
528
|
+
}>>;
|
|
461
529
|
contextWindow: Type.TOptional<Type.TNumber>;
|
|
462
530
|
maxTokens: Type.TOptional<Type.TNumber>;
|
|
463
531
|
headers: Type.TOptional<Type.TRecord<"^.*$", Type.TString>>;
|
|
@@ -518,7 +586,6 @@ declare const ProviderConfigSchema: Type.TObject<{
|
|
|
518
586
|
supportsOpenAIGrammarTools: Type.TOptional<Type.TBoolean>;
|
|
519
587
|
supportsStrictMode: Type.TOptional<Type.TBoolean>;
|
|
520
588
|
sendSessionAffinityHeaders: Type.TOptional<Type.TBoolean>;
|
|
521
|
-
deferredToolsMode: Type.TOptional<Type.TLiteral<"kimi">>;
|
|
522
589
|
sessionAffinityFormat: Type.TOptional<Type.TUnion<[Type.TLiteral<"openai">, Type.TLiteral<"openai-nosession">, Type.TLiteral<"openrouter">]>>;
|
|
523
590
|
supportsLongCacheRetention: Type.TOptional<Type.TBoolean>;
|
|
524
591
|
vllmPriority: Type.TOptional<Type.TNumber>;
|
|
@@ -528,8 +595,6 @@ declare const ProviderConfigSchema: Type.TObject<{
|
|
|
528
595
|
supportsLongCacheRetention: Type.TOptional<Type.TBoolean>;
|
|
529
596
|
supportsStrictMode: Type.TOptional<Type.TBoolean>;
|
|
530
597
|
supportsOpenAIGrammarTools: Type.TOptional<Type.TBoolean>;
|
|
531
|
-
supportsAdditionalTools: Type.TOptional<Type.TBoolean>;
|
|
532
|
-
supportsToolSearch: Type.TOptional<Type.TBoolean>;
|
|
533
598
|
supportsMaxOutputTokens: Type.TOptional<Type.TBoolean>;
|
|
534
599
|
}>, Type.TObject<{
|
|
535
600
|
supportsEagerToolInputStreaming: Type.TOptional<Type.TBoolean>;
|
|
@@ -541,7 +606,23 @@ declare const ProviderConfigSchema: Type.TObject<{
|
|
|
541
606
|
allowEmptySignature: Type.TOptional<Type.TBoolean>;
|
|
542
607
|
supportsStrictTools: Type.TOptional<Type.TBoolean>;
|
|
543
608
|
supportsMidConvoEffort: Type.TOptional<Type.TBoolean>;
|
|
544
|
-
|
|
609
|
+
allowedFallbackModels: Type.TOptional<Type.TArray<Type.TObject<{
|
|
610
|
+
provider: Type.TString;
|
|
611
|
+
model: Type.TString;
|
|
612
|
+
cost: Type.TObject<{
|
|
613
|
+
input: Type.TNumber;
|
|
614
|
+
output: Type.TNumber;
|
|
615
|
+
cacheRead: Type.TNumber;
|
|
616
|
+
cacheWrite: Type.TNumber;
|
|
617
|
+
tiers: Type.TOptional<Type.TArray<Type.TObject<{
|
|
618
|
+
input: Type.TNumber;
|
|
619
|
+
output: Type.TNumber;
|
|
620
|
+
cacheRead: Type.TNumber;
|
|
621
|
+
cacheWrite: Type.TNumber;
|
|
622
|
+
inputTokensAbove: Type.TNumber;
|
|
623
|
+
}>>>;
|
|
624
|
+
}>;
|
|
625
|
+
}>>>;
|
|
545
626
|
}>]>>;
|
|
546
627
|
}>>>;
|
|
547
628
|
}>;
|