|
1 | 1 | import { applyThreadPullRequestLinkUpdate } from "@t3tools/shared/threadPullRequests"; |
2 | 2 | import { projectTurnItemForWire } from "./WireProjection.ts"; |
3 | 3 | import * as Stream from "effect/Stream"; |
| 4 | +import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; |
4 | 5 | import { makeThreadFind, findProjectedThreadItems } from "./ThreadFind.ts"; |
5 | 6 | import type { |
6 | 7 | OrchestrationV2SearchThreadInput, |
@@ -6511,47 +6512,55 @@ export const layer: Layer.Layer<ProjectionStoreV2, never, SqlClient.SqlClient> = |
6511 | 6512 | ) |
6512 | 6513 | .pipe(Effect.mapError((cause) => new ProjectionStoreReadError({ threadId, cause }))); |
6513 | 6514 |
|
| 6515 | + const readOnReader = |
| 6516 | + <Args extends ReadonlyArray<unknown>, A, E, R>( |
| 6517 | + method: (...args: Args) => Effect.Effect<A, E, R>, |
| 6518 | + ) => |
| 6519 | + (...args: Args): Effect.Effect<A, E, R> => |
| 6520 | + method(...args).pipe(NodeSqliteClient.readOnly); |
| 6521 | + |
6514 | 6522 | return { |
6515 | 6523 | apply, |
6516 | | - getShellSnapshot, |
6517 | | - readShellSnapshot, |
6518 | | - getThreadShell, |
6519 | | - getThread, |
6520 | | - getSettlementCandidates, |
6521 | | - getThreadsWithPullRequests, |
6522 | | - getThreadWorktreePaths, |
| 6524 | + getShellSnapshot: readOnReader(getShellSnapshot), |
| 6525 | + readShellSnapshot: readOnReader(readShellSnapshot), |
| 6526 | + getThreadShell: readOnReader(getThreadShell), |
| 6527 | + getThread: readOnReader(getThread), |
| 6528 | + getSettlementCandidates: readOnReader(getSettlementCandidates), |
| 6529 | + getThreadsWithPullRequests: readOnReader(getThreadsWithPullRequests), |
| 6530 | + getThreadWorktreePaths: readOnReader(getThreadWorktreePaths), |
6523 | 6531 | getThreadProjection, |
6524 | | - getTurnStartContext, |
6525 | | - getTurnStartHistory, |
6526 | | - getRuntimeRecoveryProjection, |
6527 | | - getRunningTurnContext, |
6528 | | - getThreadProviderContext, |
6529 | | - getRuntimeResponseContext, |
6530 | | - getCheckpointContext, |
6531 | | - getCheckpointCaptureContext, |
6532 | | - getCheckpointRollbackContext, |
6533 | | - getRunMessage, |
6534 | | - canStartQueuedRun, |
6535 | | - getPendingNativeUserInputs, |
6536 | | - hasUnpairedRunInterruptRequest, |
6537 | | - isNodeStored, |
6538 | | - getMessageCount, |
6539 | | - getNextTurnItemOrdinal, |
6540 | | - getTurnItem, |
6541 | | - getThreadRecords, |
6542 | | - getRuntimeRequest, |
6543 | | - getPlan, |
6544 | | - getProviderControlContext, |
6545 | | - getLimitRecoveryCandidates, |
6546 | | - getRecoveryThreadIds, |
6547 | | - getUnreadableThreadIds, |
6548 | | - getThreadSnapshot, |
6549 | | - getThreadSnapshotWindow, |
6550 | | - getTimelinePage, |
6551 | | - getThreadHistoryPage, |
6552 | | - searchThread, |
| 6532 | + getTurnStartContext: readOnReader(getTurnStartContext), |
| 6533 | + getTurnStartHistory: readOnReader(getTurnStartHistory), |
| 6534 | + getRuntimeRecoveryProjection: readOnReader(getRuntimeRecoveryProjection), |
| 6535 | + getRunningTurnContext: readOnReader(getRunningTurnContext), |
| 6536 | + getThreadProviderContext: readOnReader(getThreadProviderContext), |
| 6537 | + getRuntimeResponseContext: readOnReader(getRuntimeResponseContext), |
| 6538 | + getCheckpointContext: readOnReader(getCheckpointContext), |
| 6539 | + getCheckpointCaptureContext: readOnReader(getCheckpointCaptureContext), |
| 6540 | + getCheckpointRollbackContext: readOnReader(getCheckpointRollbackContext), |
| 6541 | + getRunMessage: readOnReader(getRunMessage), |
| 6542 | + canStartQueuedRun: readOnReader(canStartQueuedRun), |
| 6543 | + getPendingNativeUserInputs: readOnReader(getPendingNativeUserInputs), |
| 6544 | + hasUnpairedRunInterruptRequest: readOnReader(hasUnpairedRunInterruptRequest), |
| 6545 | + isNodeStored: readOnReader(isNodeStored), |
| 6546 | + getMessageCount: readOnReader(getMessageCount), |
| 6547 | + getNextTurnItemOrdinal: readOnReader(getNextTurnItemOrdinal), |
| 6548 | + getTurnItem: readOnReader(getTurnItem), |
| 6549 | + getThreadRecords: (threadId, fields, filter) => |
| 6550 | + getThreadRecords(threadId, fields, filter).pipe(NodeSqliteClient.readOnly), |
| 6551 | + getRuntimeRequest: readOnReader(getRuntimeRequest), |
| 6552 | + getPlan: readOnReader(getPlan), |
| 6553 | + getProviderControlContext: readOnReader(getProviderControlContext), |
| 6554 | + getLimitRecoveryCandidates: readOnReader(getLimitRecoveryCandidates), |
| 6555 | + getRecoveryThreadIds: readOnReader(getRecoveryThreadIds), |
| 6556 | + getUnreadableThreadIds: readOnReader(getUnreadableThreadIds), |
| 6557 | + getThreadSnapshot: readOnReader(getThreadSnapshot), |
| 6558 | + getThreadSnapshotWindow: readOnReader(getThreadSnapshotWindow), |
| 6559 | + getTimelinePage: readOnReader(getTimelinePage), |
| 6560 | + getThreadHistoryPage: readOnReader(getThreadHistoryPage), |
| 6561 | + searchThread: readOnReader(searchThread), |
6553 | 6562 | searchThreadStream, |
6554 | | - getThreadAttachmentIds, |
| 6563 | + getThreadAttachmentIds: readOnReader(getThreadAttachmentIds), |
6555 | 6564 | } satisfies ProjectionStoreV2Shape; |
6556 | 6565 | }), |
6557 | 6566 | ); |
|
0 commit comments