Skip to content

Commit 77716b4

Browse files
juliusmarmingecodexJustYanniccclaude
authored
feat: add Claude Code adapter (#179)
Co-authored-by: codex <codex@users.noreply.github.com> Co-authored-by: JustYannicc <52761674+JustYannicc@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent fb18b2d commit 77716b4

File tree

74 files changed

+12574
-1240
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+12574
-1240
lines changed

.plans/17-claude-agent.md

Lines changed: 441 additions & 0 deletions
Large diffs are not rendered by default.

AGENTS.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
## Project Snapshot
99

10-
T3 Code is a minimal web GUI for using code agents like Codex and Claude Code (coming soon).
10+
T3 Code is a minimal web GUI for using coding agents like Codex and Claude.
1111

1212
This repository is a VERY EARLY WIP. Proposing sweeping changes that improve long-term maintainability is encouraged.
1313

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# T3 Code
22

3-
T3 Code is a minimal web GUI for coding agents. Currently Codex-first, with Claude Code support coming soon.
3+
T3 Code is a minimal web GUI for coding agents (currently Codex and Claude, more coming soon).
44

55
## How to use
66

apps/server/integration/OrchestrationEngineHarness.integration.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { execFileSync } from "node:child_process";
66
import * as NodeServices from "@effect/platform-node/NodeServices";
77
import {
88
ApprovalRequestId,
9+
ProviderKind,
910
type OrchestrationEvent,
1011
type OrchestrationThread,
1112
} from "@t3tools/contracts";
@@ -205,7 +206,7 @@ export interface OrchestrationIntegrationHarness {
205206
}
206207

207208
interface MakeOrchestrationIntegrationHarnessOptions {
208-
readonly provider?: "codex";
209+
readonly provider?: ProviderKind;
209210
readonly realCodex?: boolean;
210211
}
211212

apps/server/integration/TestProviderAdapter.integration.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import {
1010
ProviderTurnStartResult,
1111
ThreadId,
1212
TurnId,
13+
ProviderKind,
1314
} from "@t3tools/contracts";
1415
import { Effect, Queue, Stream } from "effect";
1516

@@ -35,7 +36,7 @@ export interface TestTurnResponse {
3536
export type FixtureProviderRuntimeEvent = {
3637
readonly type: string;
3738
readonly eventId: EventId;
38-
readonly provider: "codex";
39+
readonly provider: ProviderKind;
3940
readonly createdAt: string;
4041
readonly threadId: string;
4142
readonly turnId?: string | undefined;
@@ -177,7 +178,7 @@ function normalizeFixtureEvent(rawEvent: Record<string, unknown>): ProviderRunti
177178

178179
export interface TestProviderAdapterHarness {
179180
readonly adapter: ProviderAdapterShape<ProviderAdapterError>;
180-
readonly provider: "codex";
181+
readonly provider: ProviderKind;
181182
readonly queueTurnResponse: (
182183
threadId: ThreadId,
183184
response: TestTurnResponse,
@@ -197,15 +198,15 @@ export interface TestProviderAdapterHarness {
197198
}
198199

199200
interface MakeTestProviderAdapterHarnessOptions {
200-
readonly provider?: "codex";
201+
readonly provider?: ProviderKind;
201202
}
202203

203204
function nowIso(): string {
204205
return new Date().toISOString();
205206
}
206207

207208
function sessionNotFound(
208-
provider: "codex",
209+
provider: ProviderKind,
209210
threadId: ThreadId,
210211
): ProviderAdapterSessionNotFoundError {
211212
return new ProviderAdapterSessionNotFoundError({
@@ -215,7 +216,7 @@ function sessionNotFound(
215216
}
216217

217218
function missingSessionEffect(
218-
provider: "codex",
219+
provider: ProviderKind,
219220
threadId: ThreadId,
220221
): Effect.Effect<never, ProviderAdapterError> {
221222
return Effect.fail(sessionNotFound(provider, threadId));

0 commit comments

Comments
 (0)