authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-02-26 21:36:44-08:00
committergravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-02-26 21:36:44-08:00
log041acf158a277c9f8eca5e844770ffa74d9ed752
tree2a349d8d8f452f91374fd1325accb5cc4aa927d3
parentf9752d7c08ee1e22161bfdd4ec8441c4272c5b99

fix nullability


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";
44
5import * as SqliteClient from "./NodeSqliteClient.ts";5import * as SqliteClient from "./NodeSqliteClient.ts";
66
7it.effect("runs prepared queries and returns positional values", () =>7const layer = it.layer(SqliteClient.layerMemory());
8 Effect.gen(function* () {
9 const sql = yield* SqlClient.SqlClient;
108
11 yield* sql`CREATE TABLE entries(id INTEGER PRIMARY KEY, name TEXT NOT NULL)`;9layer("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;
1313
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 id18 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");
2023
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});
507507