@h-rig/contracts 0.0.6-alpha.9 → 0.0.6-alpha.90

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/index.cjs +5277 -0
  2. package/dist/index.mjs +5234 -0
  3. package/dist/src/artifact.d.ts +13 -0
  4. package/dist/src/baseSchemas.d.ts +57 -0
  5. package/dist/src/cli-output.d.ts +234 -0
  6. package/dist/src/cli-output.js +154 -0
  7. package/dist/src/config.d.ts +316 -0
  8. package/dist/src/config.js +14 -2
  9. package/dist/src/conversation.d.ts +50 -0
  10. package/dist/src/editor.d.ts +25 -0
  11. package/dist/src/engine.d.ts +2789 -0
  12. package/dist/src/engine.js +4 -2
  13. package/dist/src/git.d.ts +144 -0
  14. package/dist/src/graph.d.ts +39 -0
  15. package/dist/src/index.d.ts +33 -0
  16. package/dist/src/index.js +1906 -1219
  17. package/dist/src/ipc.d.ts +247 -0
  18. package/dist/src/keybindings.d.ts +71 -0
  19. package/dist/src/model.d.ts +77 -0
  20. package/dist/src/orchestration.d.ts +3695 -0
  21. package/dist/src/pi-session.d.ts +113 -0
  22. package/dist/src/pi-session.js +1 -0
  23. package/dist/src/plugin-hooks.d.ts +51 -0
  24. package/dist/src/plugin-hooks.js +112 -0
  25. package/dist/src/plugin.d.ts +230 -0
  26. package/dist/src/policy.d.ts +16 -0
  27. package/dist/src/project.d.ts +71 -0
  28. package/dist/src/protocol-version.d.ts +21 -0
  29. package/dist/src/protocol-version.js +6 -0
  30. package/dist/src/provider.d.ts +105 -0
  31. package/dist/src/providerRuntime.d.ts +3949 -0
  32. package/dist/src/remote.d.ts +326 -0
  33. package/dist/src/remote.js +4 -2
  34. package/dist/src/review.d.ts +18 -0
  35. package/dist/src/rig.d.ts +753 -0
  36. package/dist/src/rig.js +32 -4
  37. package/dist/src/run-journal.d.ts +763 -0
  38. package/dist/src/run-journal.js +1506 -0
  39. package/dist/src/runtime.d.ts +103 -0
  40. package/dist/src/runtime.js +4 -2
  41. package/dist/src/server.d.ts +106 -0
  42. package/dist/src/serviceFabric.d.ts +62 -0
  43. package/dist/src/task-source.d.ts +28 -0
  44. package/dist/src/terminal.d.ts +130 -0
  45. package/dist/src/validation.d.ts +14 -0
  46. package/dist/src/workspace.d.ts +204 -0
  47. package/dist/src/ws.d.ts +733 -0
  48. package/dist/src/ws.js +27 -3
  49. package/package.json +6 -3
@@ -0,0 +1,247 @@
1
+ import type { GitCheckoutInput, GitCreateBranchInput, GitCreateWorktreeInput, GitCreateWorktreeResult, GitInitInput, GitListBranchesInput, GitListBranchesResult, GitPullInput, GitPullResult, GitReadWorkingTreePatchInput, GitReadWorkingTreePatchResult, GitRemoveWorktreeInput, GitRunStackedActionInput, GitRunStackedActionResult, GitStatusInput, GitStatusResult } from "./git";
2
+ import type { ProjectListDirectoryInput, ProjectListDirectoryResult, ProjectSearchEntriesInput, ProjectSearchEntriesResult, ProjectReadFileInput, ProjectReadFileResult, ProjectWriteFileInput, ProjectWriteFileResult } from "./project";
3
+ import type { ServerConfig } from "./server";
4
+ import type { RigCreateAdhocRunInput, RigCreateTaskRunInput, RigDeleteRunInput, RigEnqueueTaskInput, RigGetRunLogsInput, RigGetRunLogsResult, RigGetTaskArtifactsResult, RigRunLogAppendedPayload, RigGetWorkspaceInput, RigGetWorkspaceResult, RigListWorkspacesResult, RigMutationResult, RigInterruptRunInput, RigResumeRunInput, RigResolveApprovalInput, RigResolveUserInputInput, RigSnapshot, RigStopRunInput, RigSubmitRunMessageInput } from "./rig";
5
+ import type { TerminalClearInput, TerminalCloseInput, TerminalEvent, TerminalOpenInput, TerminalResizeInput, TerminalSessionSnapshot, TerminalWriteInput } from "./terminal";
6
+ import type { ServerUpsertKeybindingInput, ServerUpsertKeybindingResult } from "./server";
7
+ import type { ClientOrchestrationCommand, OrchestrationGetFullThreadDiffInput, OrchestrationGetFullThreadDiffResult, OrchestrationGetTurnDiffInput, OrchestrationGetTurnDiffResult, OrchestrationEvent, OrchestrationReadModel } from "./orchestration";
8
+ import type { EngineEvent } from "./engine";
9
+ import { EditorId } from "./editor";
10
+ export interface ContextMenuItem<T extends string = string> {
11
+ id: T;
12
+ label: string;
13
+ destructive?: boolean;
14
+ }
15
+ export type DesktopUpdateStatus = "disabled" | "idle" | "checking" | "up-to-date" | "available" | "downloading" | "downloaded" | "error";
16
+ export interface DesktopUpdateState {
17
+ enabled: boolean;
18
+ status: DesktopUpdateStatus;
19
+ currentVersion: string;
20
+ availableVersion: string | null;
21
+ downloadedVersion: string | null;
22
+ downloadPercent: number | null;
23
+ checkedAt: string | null;
24
+ message: string | null;
25
+ errorContext: "check" | "download" | "install" | null;
26
+ canRetry: boolean;
27
+ }
28
+ export interface DesktopUpdateActionResult {
29
+ accepted: boolean;
30
+ completed: boolean;
31
+ state: DesktopUpdateState;
32
+ }
33
+ export type RigProjectConfigStatus = "rig-config-ts" | "rig-config-json" | "legacy-task-config" | "missing";
34
+ export interface DesktopRigSetupState {
35
+ rootPath: string | null;
36
+ ready: boolean;
37
+ wsUrl: string | null;
38
+ /**
39
+ * What kind of Rig configuration the project at `rootPath` has. The
40
+ * desktop main process probes the filesystem at boot and on
41
+ * `setRigRoot`; the renderer reads this to decide whether to show an
42
+ * onboarding banner ("Run `rig init`") or the normal dashboard.
43
+ */
44
+ configStatus: RigProjectConfigStatus;
45
+ }
46
+ export interface RigConfigWriteResult {
47
+ ok: boolean;
48
+ /** Absolute path to the file that was written. */
49
+ configPath: string;
50
+ /** Filesystem error message when `ok === false`. */
51
+ error?: string;
52
+ /** Updated setup state — `configStatus` reflects the post-write probe. */
53
+ setup: DesktopRigSetupState;
54
+ }
55
+ export interface RigConfigReadResult {
56
+ /** The raw rig.config.{ts,json} source, or null if none exists. */
57
+ source: string | null;
58
+ /** Which file was read; null when no config exists. */
59
+ configPath: string | null;
60
+ }
61
+ export interface ProjectGitRemoteInfo {
62
+ /** The raw origin URL, e.g. `git@github.com:humanity-org/humanwork.git`. */
63
+ url: string;
64
+ /** Parsed host, e.g. `github.com`. */
65
+ host: string | null;
66
+ /** Parsed owner/org, e.g. `humanity-org`. */
67
+ owner: string | null;
68
+ /** Parsed repository name (no `.git` suffix), e.g. `humanwork`. */
69
+ repo: string | null;
70
+ }
71
+ export interface DesktopBridge {
72
+ getWsUrl: () => string | null;
73
+ getRigSetup: () => Promise<DesktopRigSetupState>;
74
+ setRigRoot: (rootPath: string) => Promise<DesktopRigSetupState>;
75
+ /**
76
+ * Read the raw rig.config.{ts,json} from the project at `rootPath`.
77
+ * Returns `{ source: null }` when no config exists. Used by the in-app
78
+ * Settings screen to populate the form from the existing file.
79
+ */
80
+ readRigConfigRaw: (rootPath: string) => Promise<RigConfigReadResult>;
81
+ /**
82
+ * Write rig.config.ts to the project root atomically (temp-file + rename).
83
+ * Refreshes the cached setup state and returns it post-write so callers
84
+ * can route past the setup gate. Used by both the in-app setup wizard
85
+ * and the Settings → Project section.
86
+ */
87
+ writeRigConfig: (rootPath: string, source: string) => Promise<RigConfigWriteResult>;
88
+ /**
89
+ * Inspect the project's git origin to auto-fill setup wizard fields.
90
+ * Runs `git -C <rootPath> remote get-url origin` and parses owner/repo.
91
+ * Returns null when the project isn't a git repo, has no origin, or the
92
+ * URL doesn't match a recognized GitHub-style pattern. The wizard uses
93
+ * this to prefill the GitHub owner/repo step instead of making the
94
+ * operator type values that are already in `.git/config`.
95
+ */
96
+ getProjectGitRemote: (rootPath: string) => Promise<ProjectGitRemoteInfo | null>;
97
+ pickFolder: () => Promise<string | null>;
98
+ confirm: (message: string) => Promise<boolean>;
99
+ showContextMenu: <T extends string>(items: readonly ContextMenuItem<T>[], position?: {
100
+ x: number;
101
+ y: number;
102
+ }) => Promise<T | null>;
103
+ openExternal: (url: string) => Promise<boolean>;
104
+ onMenuAction: (listener: (action: string) => void) => () => void;
105
+ getUpdateState: () => Promise<DesktopUpdateState>;
106
+ downloadUpdate: () => Promise<DesktopUpdateActionResult>;
107
+ installUpdate: () => Promise<DesktopUpdateActionResult>;
108
+ onUpdateState: (listener: (state: DesktopUpdateState) => void) => () => void;
109
+ }
110
+ export interface NativeApi {
111
+ dialogs: {
112
+ pickFolder: () => Promise<string | null>;
113
+ confirm: (message: string) => Promise<boolean>;
114
+ };
115
+ terminal: {
116
+ open: (input: TerminalOpenInput) => Promise<TerminalSessionSnapshot>;
117
+ write: (input: TerminalWriteInput) => Promise<void>;
118
+ resize: (input: TerminalResizeInput) => Promise<void>;
119
+ clear: (input: TerminalClearInput) => Promise<void>;
120
+ restart: (input: TerminalOpenInput) => Promise<TerminalSessionSnapshot>;
121
+ close: (input: TerminalCloseInput) => Promise<void>;
122
+ onEvent: (callback: (event: TerminalEvent) => void) => () => void;
123
+ };
124
+ projects: {
125
+ listDirectory: (input: ProjectListDirectoryInput) => Promise<ProjectListDirectoryResult>;
126
+ searchEntries: (input: ProjectSearchEntriesInput) => Promise<ProjectSearchEntriesResult>;
127
+ readFile: (input: ProjectReadFileInput) => Promise<ProjectReadFileResult>;
128
+ writeFile: (input: ProjectWriteFileInput) => Promise<ProjectWriteFileResult>;
129
+ };
130
+ shell: {
131
+ openInEditor: (cwd: string, editor: EditorId) => Promise<void>;
132
+ openExternal: (url: string) => Promise<void>;
133
+ };
134
+ git: {
135
+ listBranches: (input: GitListBranchesInput) => Promise<GitListBranchesResult>;
136
+ createWorktree: (input: GitCreateWorktreeInput) => Promise<GitCreateWorktreeResult>;
137
+ removeWorktree: (input: GitRemoveWorktreeInput) => Promise<void>;
138
+ createBranch: (input: GitCreateBranchInput) => Promise<void>;
139
+ checkout: (input: GitCheckoutInput) => Promise<void>;
140
+ init: (input: GitInitInput) => Promise<void>;
141
+ pull: (input: GitPullInput) => Promise<GitPullResult>;
142
+ status: (input: GitStatusInput) => Promise<GitStatusResult>;
143
+ readWorkingTreePatch: (input: GitReadWorkingTreePatchInput) => Promise<GitReadWorkingTreePatchResult>;
144
+ runStackedAction: (input: GitRunStackedActionInput) => Promise<GitRunStackedActionResult>;
145
+ };
146
+ contextMenu: {
147
+ show: <T extends string>(items: readonly ContextMenuItem<T>[], position?: {
148
+ x: number;
149
+ y: number;
150
+ }) => Promise<T | null>;
151
+ };
152
+ server: {
153
+ getConfig: () => Promise<ServerConfig>;
154
+ upsertKeybinding: (input: ServerUpsertKeybindingInput) => Promise<ServerUpsertKeybindingResult>;
155
+ };
156
+ rig: {
157
+ getSnapshot: () => Promise<RigSnapshot>;
158
+ listWorkspaces: () => Promise<RigListWorkspacesResult>;
159
+ getWorkspace: (input: RigGetWorkspaceInput) => Promise<RigGetWorkspaceResult>;
160
+ getRunLogs: (input: RigGetRunLogsInput) => Promise<RigGetRunLogsResult>;
161
+ replayEvents: (fromSequenceExclusive: number) => Promise<EngineEvent[]>;
162
+ createAdhocRun: (input: RigCreateAdhocRunInput) => Promise<RigMutationResult>;
163
+ createTaskRun: (input: RigCreateTaskRunInput) => Promise<RigMutationResult>;
164
+ deleteRun: (input: RigDeleteRunInput) => Promise<RigMutationResult>;
165
+ enqueueTask: (input: RigEnqueueTaskInput) => Promise<RigMutationResult>;
166
+ resumeRun: (input: RigResumeRunInput) => Promise<RigMutationResult>;
167
+ submitRunMessage: (input: RigSubmitRunMessageInput) => Promise<RigMutationResult>;
168
+ interruptRun: (input: RigInterruptRunInput) => Promise<RigMutationResult>;
169
+ stopRun: (input: RigStopRunInput) => Promise<RigMutationResult>;
170
+ resolveApproval: (input: RigResolveApprovalInput) => Promise<RigMutationResult>;
171
+ resolveUserInput: (input: RigResolveUserInputInput) => Promise<RigMutationResult>;
172
+ getTaskArtifacts: (taskId: string) => Promise<RigGetTaskArtifactsResult>;
173
+ onEvent: (callback: (event: EngineEvent) => void) => () => void;
174
+ onRunLogAppended: (callback: (payload: RigRunLogAppendedPayload) => void) => () => void;
175
+ };
176
+ orchestration: {
177
+ getSnapshot: () => Promise<OrchestrationReadModel>;
178
+ dispatchCommand: (command: ClientOrchestrationCommand) => Promise<{
179
+ sequence: number;
180
+ }>;
181
+ getTurnDiff: (input: OrchestrationGetTurnDiffInput) => Promise<OrchestrationGetTurnDiffResult>;
182
+ getFullThreadDiff: (input: OrchestrationGetFullThreadDiffInput) => Promise<OrchestrationGetFullThreadDiffResult>;
183
+ replayEvents: (fromSequenceExclusive: number) => Promise<OrchestrationEvent[]>;
184
+ onDomainEvent: (callback: (event: OrchestrationEvent) => void) => () => void;
185
+ };
186
+ remote: {
187
+ testEndpoint: (input: {
188
+ host: string;
189
+ port: number;
190
+ token?: string;
191
+ }) => Promise<{
192
+ latencyMs: number;
193
+ }>;
194
+ listEndpoints: () => Promise<unknown[]>;
195
+ registerEndpoint: (input: {
196
+ alias: string;
197
+ host: string;
198
+ port: number;
199
+ token?: string;
200
+ autoConnect?: boolean;
201
+ }) => Promise<unknown>;
202
+ removeEndpoint: (input: {
203
+ endpointId: string;
204
+ }) => Promise<void>;
205
+ connect: (input: {
206
+ endpointId: string;
207
+ }) => Promise<void>;
208
+ disconnect: (input: {
209
+ endpointId: string;
210
+ }) => Promise<void>;
211
+ createRunForTask: (input: {
212
+ endpointId: string;
213
+ taskId: string;
214
+ runId: string;
215
+ workspaceId: string;
216
+ runtimeMode?: string;
217
+ interactionMode?: string;
218
+ }) => Promise<{
219
+ ok: boolean;
220
+ }>;
221
+ terminalOpen: (input: {
222
+ endpointId: string;
223
+ threadId: string;
224
+ terminalId: string;
225
+ cwd?: string;
226
+ env?: Record<string, string>;
227
+ }) => Promise<unknown>;
228
+ terminalWrite: (input: {
229
+ endpointId: string;
230
+ threadId: string;
231
+ terminalId: string;
232
+ data: string;
233
+ }) => Promise<void>;
234
+ terminalResize: (input: {
235
+ endpointId: string;
236
+ threadId: string;
237
+ terminalId: string;
238
+ cols: number;
239
+ rows: number;
240
+ }) => Promise<void>;
241
+ terminalClose: (input: {
242
+ endpointId: string;
243
+ threadId: string;
244
+ terminalId: string;
245
+ }) => Promise<void>;
246
+ };
247
+ }
@@ -0,0 +1,71 @@
1
+ import { Schema } from "effect";
2
+ export declare const MAX_KEYBINDING_VALUE_LENGTH = 64;
3
+ export declare const MAX_WHEN_EXPRESSION_DEPTH = 64;
4
+ export declare const MAX_SCRIPT_ID_LENGTH = 24;
5
+ export declare const MAX_KEYBINDINGS_COUNT = 256;
6
+ export declare const SCRIPT_RUN_COMMAND_PATTERN: Schema.TemplateLiteral<readonly [Schema.Literal<"script.">, Schema.String, Schema.Literal<".run">]>;
7
+ export declare const KeybindingCommand: Schema.Union<readonly [Schema.Literals<readonly ["terminal.toggle", "terminal.split", "terminal.new", "terminal.close", "diff.toggle", "chat.new", "chat.newLocal", "editor.openFavorite"]>, Schema.TemplateLiteral<readonly [Schema.Literal<"script.">, Schema.String, Schema.Literal<".run">]>]>;
8
+ export type KeybindingCommand = typeof KeybindingCommand.Type;
9
+ export declare const KeybindingRule: Schema.Struct<{
10
+ readonly key: Schema.Trim;
11
+ readonly command: Schema.Union<readonly [Schema.Literals<readonly ["terminal.toggle", "terminal.split", "terminal.new", "terminal.close", "diff.toggle", "chat.new", "chat.newLocal", "editor.openFavorite"]>, Schema.TemplateLiteral<readonly [Schema.Literal<"script.">, Schema.String, Schema.Literal<".run">]>]>;
12
+ readonly when: Schema.optional<Schema.Trim>;
13
+ }>;
14
+ export type KeybindingRule = typeof KeybindingRule.Type;
15
+ export declare const KeybindingsConfig: Schema.$Array<Schema.Struct<{
16
+ readonly key: Schema.Trim;
17
+ readonly command: Schema.Union<readonly [Schema.Literals<readonly ["terminal.toggle", "terminal.split", "terminal.new", "terminal.close", "diff.toggle", "chat.new", "chat.newLocal", "editor.openFavorite"]>, Schema.TemplateLiteral<readonly [Schema.Literal<"script.">, Schema.String, Schema.Literal<".run">]>]>;
18
+ readonly when: Schema.optional<Schema.Trim>;
19
+ }>>;
20
+ export type KeybindingsConfig = typeof KeybindingsConfig.Type;
21
+ export declare const KeybindingShortcut: Schema.Struct<{
22
+ readonly key: Schema.Trim;
23
+ readonly metaKey: Schema.Boolean;
24
+ readonly ctrlKey: Schema.Boolean;
25
+ readonly shiftKey: Schema.Boolean;
26
+ readonly altKey: Schema.Boolean;
27
+ readonly modKey: Schema.Boolean;
28
+ }>;
29
+ export type KeybindingShortcut = typeof KeybindingShortcut.Type;
30
+ export declare const KeybindingWhenNode: Schema.Schema<KeybindingWhenNode>;
31
+ export type KeybindingWhenNode = {
32
+ type: "identifier";
33
+ name: string;
34
+ } | {
35
+ type: "not";
36
+ node: KeybindingWhenNode;
37
+ } | {
38
+ type: "and";
39
+ left: KeybindingWhenNode;
40
+ right: KeybindingWhenNode;
41
+ } | {
42
+ type: "or";
43
+ left: KeybindingWhenNode;
44
+ right: KeybindingWhenNode;
45
+ };
46
+ export declare const ResolvedKeybindingRule: Schema.Struct<{
47
+ readonly command: Schema.Union<readonly [Schema.Literals<readonly ["terminal.toggle", "terminal.split", "terminal.new", "terminal.close", "diff.toggle", "chat.new", "chat.newLocal", "editor.openFavorite"]>, Schema.TemplateLiteral<readonly [Schema.Literal<"script.">, Schema.String, Schema.Literal<".run">]>]>;
48
+ readonly shortcut: Schema.Struct<{
49
+ readonly key: Schema.Trim;
50
+ readonly metaKey: Schema.Boolean;
51
+ readonly ctrlKey: Schema.Boolean;
52
+ readonly shiftKey: Schema.Boolean;
53
+ readonly altKey: Schema.Boolean;
54
+ readonly modKey: Schema.Boolean;
55
+ }>;
56
+ readonly whenAst: Schema.optional<Schema.Schema<KeybindingWhenNode>>;
57
+ }>;
58
+ export type ResolvedKeybindingRule = typeof ResolvedKeybindingRule.Type;
59
+ export declare const ResolvedKeybindingsConfig: Schema.$Array<Schema.Struct<{
60
+ readonly command: Schema.Union<readonly [Schema.Literals<readonly ["terminal.toggle", "terminal.split", "terminal.new", "terminal.close", "diff.toggle", "chat.new", "chat.newLocal", "editor.openFavorite"]>, Schema.TemplateLiteral<readonly [Schema.Literal<"script.">, Schema.String, Schema.Literal<".run">]>]>;
61
+ readonly shortcut: Schema.Struct<{
62
+ readonly key: Schema.Trim;
63
+ readonly metaKey: Schema.Boolean;
64
+ readonly ctrlKey: Schema.Boolean;
65
+ readonly shiftKey: Schema.Boolean;
66
+ readonly altKey: Schema.Boolean;
67
+ readonly modKey: Schema.Boolean;
68
+ }>;
69
+ readonly whenAst: Schema.optional<Schema.Schema<KeybindingWhenNode>>;
70
+ }>>;
71
+ export type ResolvedKeybindingsConfig = typeof ResolvedKeybindingsConfig.Type;
@@ -0,0 +1,77 @@
1
+ import { Schema } from "effect";
2
+ import { ProviderKind } from "./orchestration";
3
+ export declare const CODEX_REASONING_EFFORT_OPTIONS: readonly ["xhigh", "high", "medium", "low"];
4
+ export type CodexReasoningEffort = (typeof CODEX_REASONING_EFFORT_OPTIONS)[number];
5
+ export declare const CodexModelOptions: Schema.Struct<{
6
+ readonly reasoningEffort: Schema.optional<Schema.Literals<readonly ["xhigh", "high", "medium", "low"]>>;
7
+ readonly fastMode: Schema.optional<Schema.Boolean>;
8
+ }>;
9
+ export type CodexModelOptions = typeof CodexModelOptions.Type;
10
+ export declare const ClaudeModelOptions: Schema.Struct<{}>;
11
+ export type ClaudeModelOptions = typeof ClaudeModelOptions.Type;
12
+ export declare const ProviderModelOptions: Schema.Struct<{
13
+ readonly codex: Schema.optional<Schema.Struct<{
14
+ readonly reasoningEffort: Schema.optional<Schema.Literals<readonly ["xhigh", "high", "medium", "low"]>>;
15
+ readonly fastMode: Schema.optional<Schema.Boolean>;
16
+ }>>;
17
+ readonly claude: Schema.optional<Schema.Struct<{}>>;
18
+ }>;
19
+ export type ProviderModelOptions = typeof ProviderModelOptions.Type;
20
+ export declare const MODEL_OPTIONS_BY_PROVIDER: {
21
+ readonly codex: readonly [{
22
+ readonly slug: "gpt-5.4";
23
+ readonly name: "GPT-5.4";
24
+ }, {
25
+ readonly slug: "gpt-5.3-codex";
26
+ readonly name: "GPT-5.3 Codex";
27
+ }, {
28
+ readonly slug: "gpt-5.3-codex-spark";
29
+ readonly name: "GPT-5.3 Codex Spark";
30
+ }, {
31
+ readonly slug: "gpt-5.2-codex";
32
+ readonly name: "GPT-5.2 Codex";
33
+ }, {
34
+ readonly slug: "gpt-5.2";
35
+ readonly name: "GPT-5.2";
36
+ }];
37
+ readonly claude: readonly [{
38
+ readonly slug: "claude-sonnet-4-6";
39
+ readonly name: "Claude Sonnet 4.6";
40
+ }, {
41
+ readonly slug: "claude-opus-4-1";
42
+ readonly name: "Claude Opus 4.1";
43
+ }, {
44
+ readonly slug: "claude-3-7-sonnet-latest";
45
+ readonly name: "Claude 3.7 Sonnet";
46
+ }];
47
+ };
48
+ export type ModelOptionsByProvider = typeof MODEL_OPTIONS_BY_PROVIDER;
49
+ type BuiltInModelSlug = ModelOptionsByProvider[ProviderKind][number]["slug"];
50
+ export type ModelSlug = BuiltInModelSlug | (string & {});
51
+ export declare const DEFAULT_MODEL_BY_PROVIDER: {
52
+ readonly codex: "gpt-5.4";
53
+ readonly claude: "claude-sonnet-4-6";
54
+ };
55
+ export declare const MODEL_SLUG_ALIASES_BY_PROVIDER: {
56
+ readonly codex: {
57
+ readonly "5.4": "gpt-5.4";
58
+ readonly "5.3": "gpt-5.3-codex";
59
+ readonly "gpt-5.3": "gpt-5.3-codex";
60
+ readonly "5.3-spark": "gpt-5.3-codex-spark";
61
+ readonly "gpt-5.3-spark": "gpt-5.3-codex-spark";
62
+ };
63
+ readonly claude: {
64
+ readonly sonnet: "claude-sonnet-4-6";
65
+ readonly opus: "claude-opus-4-1";
66
+ readonly "3.7-sonnet": "claude-3-7-sonnet-latest";
67
+ };
68
+ };
69
+ export declare const REASONING_EFFORT_OPTIONS_BY_PROVIDER: {
70
+ readonly codex: readonly ["xhigh", "high", "medium", "low"];
71
+ readonly claude: readonly [];
72
+ };
73
+ export declare const DEFAULT_REASONING_EFFORT_BY_PROVIDER: {
74
+ readonly codex: "high";
75
+ readonly claude: null;
76
+ };
77
+ export {};