|
@@ -1,29 +1,26 @@
|
|
|
import { describe, expect } from "bun:test"
|
|
import { describe, expect } from "bun:test"
|
|
|
import { SessionV1 } from "@opencode-ai/core/v1/session"
|
|
import { SessionV1 } from "@opencode-ai/core/v1/session"
|
|
|
|
|
+import { LayerNode } from "@opencode-ai/core/effect/layer-node"
|
|
|
|
|
+import { SessionProjector } from "@opencode-ai/core/session/projector"
|
|
|
import fs from "fs/promises"
|
|
import fs from "fs/promises"
|
|
|
import path from "path"
|
|
import path from "path"
|
|
|
-import { Effect, Layer } from "effect"
|
|
|
|
|
|
|
+import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner"
|
|
|
|
|
+import { Effect } from "effect"
|
|
|
import { Session } from "@/session/session"
|
|
import { Session } from "@/session/session"
|
|
|
|
|
|
|
|
import { SessionRevert } from "../../src/session/revert"
|
|
import { SessionRevert } from "../../src/session/revert"
|
|
|
import { MessageV2 } from "../../src/session/message-v2"
|
|
import { MessageV2 } from "../../src/session/message-v2"
|
|
|
import { Snapshot } from "../../src/snapshot"
|
|
import { Snapshot } from "../../src/snapshot"
|
|
|
import { MessageID, PartID, SessionID } from "../../src/session/schema"
|
|
import { MessageID, PartID, SessionID } from "../../src/session/schema"
|
|
|
-import { CrossSpawnSpawner } from "@opencode-ai/core/cross-spawn-spawner"
|
|
|
|
|
import { provideTmpdirInstance } from "../fixture/fixture"
|
|
import { provideTmpdirInstance } from "../fixture/fixture"
|
|
|
import { testEffect } from "../lib/effect"
|
|
import { testEffect } from "../lib/effect"
|
|
|
import { ProviderV2 } from "@opencode-ai/core/provider"
|
|
import { ProviderV2 } from "@opencode-ai/core/provider"
|
|
|
import { ModelV2 } from "@opencode-ai/core/model"
|
|
import { ModelV2 } from "@opencode-ai/core/model"
|
|
|
|
|
|
|
|
-const env = Layer.mergeAll(
|
|
|
|
|
- Session.defaultLayer,
|
|
|
|
|
- SessionRevert.defaultLayer,
|
|
|
|
|
- Snapshot.defaultLayer,
|
|
|
|
|
- CrossSpawnSpawner.defaultLayer,
|
|
|
|
|
|
|
+const it = testEffect(
|
|
|
|
|
+ LayerNode.compile(LayerNode.group([Session.node, SessionRevert.node, Snapshot.node, SessionProjector.node, CrossSpawnSpawner.node])),
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
-const it = testEffect(env)
|
|
|
|
|
-
|
|
|
|
|
const user = Effect.fn("test.user")(function* (sessionID: SessionID, agent = "default") {
|
|
const user = Effect.fn("test.user")(function* (sessionID: SessionID, agent = "default") {
|
|
|
const session = yield* Session.Service
|
|
const session = yield* Session.Service
|
|
|
return yield* session.updateMessage({
|
|
return yield* session.updateMessage({
|