| author | |
| committer | |
| log | 041acf158a277c9f8eca5e844770ffa74d9ed752 |
| tree | 2a349d8d8f452f91374fd1325accb5cc4aa927d3 |
| parent | f9752d7c08ee1e22161bfdd4ec8441c4272c5b99 |
2 files changed, 23 insertions(+), 19 deletions(-)
apps/server/src/persistence/NodeSqliteClient.test.ts+19-15| ... | @@ -4,23 +4,27 @@ import * as SqlClient from "effect/unstable/sql/SqlClient"; | ... | @@ -4,23 +4,27 @@ import * as SqlClient from "effect/unstable/sql/SqlClient"; |
| 4 | 4 | ||
| 5 | import * as SqliteClient from "./NodeSqliteClient.ts"; | 5 | import * as SqliteClient from "./NodeSqliteClient.ts"; |
| 6 | 6 | ||
| 7 | it.effect("runs prepared queries and returns positional values", () => | 7 | const layer = it.layer(SqliteClient.layerMemory()); |
| 8 | Effect.gen(function* () { | ||
| 9 | const sql = yield* SqlClient.SqlClient; | ||
| 10 | 8 | ||
| 11 | yield* sql`CREATE TABLE entries(id INTEGER PRIMARY KEY, name TEXT NOT NULL)`; | 9 | layer("NodeSqliteClient", (it) => { |
| 12 | yield* sql`INSERT INTO entries(name) VALUES (${"alpha"}), (${"beta"})`; | 10 | it.effect("runs prepared queries and returns positional values", () => |
| 11 | Effect.gen(function* () { | ||
| 12 | const sql = yield* SqlClient.SqlClient; | ||
| 13 | 13 | ||
| 14 | const rows = yield* sql<{ readonly id: number; readonly name: string }>` | 14 | yield* sql`CREATE TABLE entries(id INTEGER PRIMARY KEY, name TEXT NOT NULL)`; |
| 15 | yield* sql`INSERT INTO entries(name) VALUES (${"alpha"}), (${"beta"})`; | ||
| 16 | |||
| 17 | const rows = yield* sql<{ readonly id: number; readonly name: string }>` | ||
| 15 | SELECT id, name FROM entries ORDER BY id | 18 | SELECT id, name FROM entries ORDER BY id |
| 16 | `; | 19 | `; |
| 17 | assert.equal(rows.length, 2); | 20 | assert.equal(rows.length, 2); |
| 18 | assert.equal(rows[0]?.name, "alpha"); | 21 | assert.equal(rows[0]?.name, "alpha"); |
| 19 | assert.equal(rows[1]?.name, "beta"); | 22 | assert.equal(rows[1]?.name, "beta"); |
| 20 | 23 | ||
| 21 | const values = yield* sql`SELECT id, name FROM entries ORDER BY id`.values; | 24 | const values = yield* sql`SELECT id, name FROM entries ORDER BY id`.values; |
| 22 | assert.equal(values.length, 2); | 25 | assert.equal(values.length, 2); |
| 23 | assert.equal(values[0]?.[1], "alpha"); | 26 | assert.equal(values[0]?.[1], "alpha"); |
| 24 | assert.equal(values[1]?.[1], "beta"); | 27 | assert.equal(values[1]?.[1], "beta"); |
| 25 | }).pipe(Effect.provide(SqliteClient.layerMemory())), | 28 | }), |
| 26 | ); | 29 | ); |
| 30 | }); |
packages/contracts/src/orchestration.ts+4-4| ... | @@ -142,8 +142,8 @@ export const OrchestrationSession = Schema.Struct({ | ... | @@ -142,8 +142,8 @@ export const OrchestrationSession = Schema.Struct({ |
| 142 | providerName: Schema.NullOr(TrimmedNonEmptyString), | 142 | providerName: Schema.NullOr(TrimmedNonEmptyString), |
| 143 | providerSessionId: Schema.NullOr(ProviderSessionId), | 143 | providerSessionId: Schema.NullOr(ProviderSessionId), |
| 144 | providerThreadId: Schema.NullOr(ProviderThreadId), | 144 | providerThreadId: Schema.NullOr(ProviderThreadId), |
| 145 | approvalPolicy: ProviderApprovalPolicy, | 145 | approvalPolicy: ProviderApprovalPolicy.pipe(Schema.withDecodingDefault(() => "on-failure")), |
| 146 | sandboxMode: ProviderSandboxMode, | 146 | sandboxMode: ProviderSandboxMode.pipe(Schema.withDecodingDefault(() => "workspace-write")), |
| 147 | activeTurnId: Schema.NullOr(TurnId), | 147 | activeTurnId: Schema.NullOr(TurnId), |
| 148 | lastError: Schema.NullOr(TrimmedNonEmptyString), | 148 | lastError: Schema.NullOr(TrimmedNonEmptyString), |
| 149 | updatedAt: IsoDateTime, | 149 | updatedAt: IsoDateTime, |
| ... | @@ -500,8 +500,8 @@ export const ThreadTurnStartRequestedPayload = Schema.Struct({ | ... | @@ -500,8 +500,8 @@ export const ThreadTurnStartRequestedPayload = Schema.Struct({ |
| 500 | model: Schema.optional(TrimmedNonEmptyString), | 500 | model: Schema.optional(TrimmedNonEmptyString), |
| 501 | effort: Schema.optional(TrimmedNonEmptyString), | 501 | effort: Schema.optional(TrimmedNonEmptyString), |
| 502 | assistantDeliveryMode: Schema.optional(AssistantDeliveryMode), | 502 | assistantDeliveryMode: Schema.optional(AssistantDeliveryMode), |
| 503 | approvalPolicy: ProviderApprovalPolicy, | 503 | approvalPolicy: ProviderApprovalPolicy.pipe(Schema.withDecodingDefault(() => "on-failure")), |
| 504 | sandboxMode: ProviderSandboxMode, | 504 | sandboxMode: ProviderSandboxMode.pipe(Schema.withDecodingDefault(() => "workspace-write")), |
| 505 | createdAt: IsoDateTime, | 505 | createdAt: IsoDateTime, |
| 506 | }); | 506 | }); |
| 507 | 507 |