authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-03-05 21:10:33-08:00
committergravatar for jmarminge@gmail.comJulius Marminge <jmarminge@gmail.com> 2026-03-05 23:00:41-08:00
log1bd4d6d953a01232a049485612d40faa1a48afa8
treec8a570c9c2423e75ff061c4c499be7c74926e70e
parente9655d43d506943925dcb1f1561d0f52843f30f6

contracts: move Claude schemas out of core

Co-authored-by: codex <codex@users.noreply.github.com>

3 files changed, 0 insertions(+), 36 deletions(-)

packages/contracts/src/model.ts-6
......@@ -13,11 +13,6 @@ export const CodexModelOptions = Schema.Struct({
1313});
1414export type CodexModelOptions = typeof CodexModelOptions.Type;
1515
16export const ClaudeCodeModelOptions = Schema.Struct({
17 thinking: Schema.optional(Schema.Boolean),
18});
19export type ClaudeCodeModelOptions = typeof ClaudeCodeModelOptions.Type;
20
2116export const CursorModelOptions = Schema.Struct({
2217 reasoning: Schema.optional(Schema.Literals(CURSOR_REASONING_OPTIONS)),
2318 fastMode: Schema.optional(Schema.Boolean),
......@@ -27,7 +22,6 @@ export type CursorModelOptions = typeof CursorModelOptions.Type;
2722
2823export const ProviderModelOptions = Schema.Struct({
2924 codex: Schema.optional(CodexModelOptions),
30 claudeCode: Schema.optional(ClaudeCodeModelOptions),
3125 cursor: Schema.optional(CursorModelOptions),
3226});
3327export type ProviderModelOptions = typeof ProviderModelOptions.Type;
packages/contracts/src/provider.test.ts-22
......@@ -43,28 +43,6 @@ describe("ProviderSessionStartInput", () => {
4343 ).toThrow();
4444 });
4545
46 it("accepts claude runtime knobs", () => {
47 const parsed = decodeProviderSessionStartInput({
48 threadId: "thread-1",
49 provider: "claudeCode",
50 cwd: "/tmp/workspace",
51 model: "claude-sonnet-4-6",
52 providerOptions: {
53 claudeCode: {
54 binaryPath: "/usr/local/bin/claude",
55 permissionMode: "plan",
56 maxThinkingTokens: 12_000,
57 },
58 },
59 runtimeMode: "full-access",
60 });
61 expect(parsed.provider).toBe("claudeCode");
62 expect(parsed.providerOptions?.claudeCode?.binaryPath).toBe("/usr/local/bin/claude");
63 expect(parsed.providerOptions?.claudeCode?.permissionMode).toBe("plan");
64 expect(parsed.providerOptions?.claudeCode?.maxThinkingTokens).toBe(12_000);
65 expect(parsed.runtimeMode).toBe("full-access");
66 });
67
6846 it("accepts cursor provider payloads", () => {
6947 const parsed = decodeProviderSessionStartInput({
7048 threadId: "thread-1",
packages/contracts/src/provider.ts-8
......@@ -5,7 +5,6 @@ import {
55 ApprovalRequestId,
66 EventId,
77 IsoDateTime,
8 NonNegativeInt,
98 ProviderItemId,
109 ThreadId,
1110 TurnId,
......@@ -51,19 +50,12 @@ const CodexProviderStartOptions = Schema.Struct({
5150 homePath: Schema.optional(TrimmedNonEmptyStringSchema),
5251});
5352
54const ClaudeCodeProviderStartOptions = Schema.Struct({
55 binaryPath: Schema.optional(TrimmedNonEmptyStringSchema),
56 permissionMode: Schema.optional(TrimmedNonEmptyStringSchema),
57 maxThinkingTokens: Schema.optional(NonNegativeInt),
58});
59
6053const CursorProviderStartOptions = Schema.Struct({
6154 binaryPath: Schema.optional(TrimmedNonEmptyStringSchema),
6255});
6356
6457const ProviderStartOptions = Schema.Struct({
6558 codex: Schema.optional(CodexProviderStartOptions),
66 claudeCode: Schema.optional(ClaudeCodeProviderStartOptions),
6759 cursor: Schema.optional(CursorProviderStartOptions),
6860});
6961