chore: support claude code v2.0.30 schema

This commit is contained in:
d-kimsuon
2025-11-02 01:41:44 +09:00
parent e17b58b481
commit 76aaf1013c
13 changed files with 178 additions and 41 deletions

View File

@@ -18,6 +18,7 @@ import {
createMessageGenerator,
type UserMessageInput,
} from "../functions/createMessageGenerator";
import { fallbackSdkMessage } from "../functions/fallbackSdkMessage";
import * as CCSessionProcess from "../models/CCSessionProcess";
import * as ClaudeCode from "../models/ClaudeCode";
import { ClaudeCodePermissionService } from "./ClaudeCodePermissionService";
@@ -146,6 +147,8 @@ const LayerImpl = Effect.gen(function* () {
const handleMessage = (message: SDKMessage) =>
Effect.gen(function* () {
console.log("[debug] handleMessage", message.type);
const processState = yield* sessionProcessService.getSessionProcess(
sessionProcess.def.sessionProcessId,
);
@@ -283,29 +286,14 @@ const LayerImpl = Effect.gen(function* () {
try {
for await (const message of messageIter) {
if (
message.type === "system" &&
message.subtype === "hook_response"
) {
continue;
}
const fallbackMessage = fallbackSdkMessage(message);
if (
message.type === "system" &&
message.subtype === "compact_boundary"
) {
if (fallbackMessage === null) {
continue;
}
const result = await Runtime.runPromise(runtime)(
handleMessage(
message.type === "system"
? {
...message,
plugins: [],
}
: message,
),
handleMessage(fallbackMessage),
).catch((error) => {
// iter 自体が落ちてなければ継続したいので握りつぶす
Effect.runFork(