@knpkv/herdr-work 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/README.md +99 -1
  2. package/dist/agent-binding.d.ts +4 -0
  3. package/dist/agent-binding.d.ts.map +1 -0
  4. package/dist/agent-binding.js +26 -0
  5. package/dist/agent-binding.js.map +1 -0
  6. package/dist/errors.d.ts +141 -0
  7. package/dist/errors.d.ts.map +1 -1
  8. package/dist/errors.js +97 -0
  9. package/dist/errors.js.map +1 -1
  10. package/dist/goal-family.d.ts +4 -0
  11. package/dist/goal-family.d.ts.map +1 -0
  12. package/dist/goal-family.js +32 -0
  13. package/dist/goal-family.js.map +1 -0
  14. package/dist/index.d.ts +4 -1
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +4 -1
  17. package/dist/index.js.map +1 -1
  18. package/dist/internal/agent-binding-admission.d.ts +15 -0
  19. package/dist/internal/agent-binding-admission.d.ts.map +1 -0
  20. package/dist/internal/agent-binding-admission.js +92 -0
  21. package/dist/internal/agent-binding-admission.js.map +1 -0
  22. package/dist/internal/agent-binding-readback.d.ts +55 -0
  23. package/dist/internal/agent-binding-readback.d.ts.map +1 -0
  24. package/dist/internal/agent-binding-readback.js +124 -0
  25. package/dist/internal/agent-binding-readback.js.map +1 -0
  26. package/dist/internal/coordinator-authority.d.ts +62 -0
  27. package/dist/internal/coordinator-authority.d.ts.map +1 -0
  28. package/dist/internal/coordinator-authority.js +214 -0
  29. package/dist/internal/coordinator-authority.js.map +1 -0
  30. package/dist/internal/decision-handoff-migration.d.ts +126 -0
  31. package/dist/internal/decision-handoff-migration.d.ts.map +1 -0
  32. package/dist/internal/decision-handoff-migration.js +51 -0
  33. package/dist/internal/decision-handoff-migration.js.map +1 -0
  34. package/dist/internal/history-validation.d.ts +5 -0
  35. package/dist/internal/history-validation.d.ts.map +1 -0
  36. package/dist/internal/history-validation.js +33 -0
  37. package/dist/internal/history-validation.js.map +1 -0
  38. package/dist/model.d.ts +3109 -51
  39. package/dist/model.d.ts.map +1 -1
  40. package/dist/model.js +340 -11
  41. package/dist/model.js.map +1 -1
  42. package/dist/navigation.d.ts +17 -0
  43. package/dist/navigation.d.ts.map +1 -0
  44. package/dist/navigation.js +62 -0
  45. package/dist/navigation.js.map +1 -0
  46. package/dist/projection.d.ts +660 -0
  47. package/dist/projection.d.ts.map +1 -1
  48. package/dist/projection.js +65 -25
  49. package/dist/projection.js.map +1 -1
  50. package/dist/service.d.ts +1886 -3
  51. package/dist/service.d.ts.map +1 -1
  52. package/dist/service.js +138 -5
  53. package/dist/service.js.map +1 -1
  54. package/dist/sql.d.ts +30 -0
  55. package/dist/sql.d.ts.map +1 -0
  56. package/dist/sql.js +1454 -0
  57. package/dist/sql.js.map +1 -0
  58. package/dist/store.d.ts +1072 -4
  59. package/dist/store.d.ts.map +1 -1
  60. package/dist/store.js +3328 -43
  61. package/dist/store.js.map +1 -1
  62. package/dist/view.d.ts +9 -2
  63. package/dist/view.d.ts.map +1 -1
  64. package/dist/view.js +156 -8
  65. package/dist/view.js.map +1 -1
  66. package/package.json +25 -13
  67. package/src/styles.css +91 -17
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,MAAM,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,KAAK,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACnG,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAEnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,CACf,KAAK,EAAE,kBAAkB,KACtB,MAAM,CAAC,MAAM,CAChB,kBAAkB,EAClB,2BAA2B,GAAG,mBAAmB,GAAG,cAAc,CACnE,CAAA;IACD,QAAQ,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,cAAc,GAAG,mBAAmB,CAAC,CAAA;CAChH;AAED,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAO1B,CAAA"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAsK1B,CAAA"}
package/dist/service.js CHANGED
@@ -1,11 +1,144 @@
1
- import { Clock, Effect } from "effect";
1
+ import { Clock, Effect, Equal, Option, Schema } from "effect";
2
+ import { WorkPullRequestLinkError, WorkRecoveryContextError } from "./errors.js";
3
+ import { workHistoryError } from "./internal/history-validation.js";
4
+ import { WorkGoalId, WorkPullRequestLink, WorkPullRequestLinkRequest } from "./model.js";
2
5
  import { projectWorkSnapshots } from "./projection.js";
3
- export const makeWorkService = Effect.fn("HerdrWork.makeService")(function* (store) {
6
+ export const makeWorkService = Effect.fn("HerdrWork.makeService")(function (store) {
7
+ const recoveryContext = Effect.fn("HerdrWork.recoveryContext")(function* (goalId) {
8
+ const id = yield* Schema.decodeUnknownEffect(WorkGoalId)(goalId).pipe(Effect.mapError(() => new WorkRecoveryContextError({ goalId, reason: "invalid_goal_id" })));
9
+ const source = yield* store.snapshotInput();
10
+ const error = workHistoryError(source.events);
11
+ if (error !== undefined)
12
+ return yield* error;
13
+ const latest = source.events.filter(({ goal }) => goal.id === id).at(-1);
14
+ if (latest === undefined) {
15
+ return yield* new WorkRecoveryContextError({
16
+ goalId: id,
17
+ reason: "missing_goal"
18
+ });
19
+ }
20
+ return {
21
+ goalId: id,
22
+ expectedGoalEventId: latest.eventId,
23
+ expectedGoalUpdatedAt: latest.goal.updatedAt
24
+ };
25
+ });
26
+ const recoveryPreflight = Effect.fn("HerdrWork.recoveryPreflight")((target) => store.recoveryPreflight(target));
27
+ const recoverExistingGoal = Effect.fn("HerdrWork.recoverExistingGoal")((request) => store.recoverExistingGoal(request));
28
+ const reassign = Effect.fn("HerdrWork.reassign")((request) => store.reassign(request));
29
+ const admissionPreflight = Effect.fn("HerdrWork.admissionPreflight")((target) => store.admissionPreflight(target));
30
+ const admitExistingOwner = Effect.fn("HerdrWork.admitExistingOwner")((request) => store.admitExistingOwner(request));
31
+ const linkError = (request, reason) => new WorkPullRequestLinkError({ goalId: request.goalId, laneId: request.laneId, reason });
32
+ const inspectPullRequest = Effect.fn("HerdrWork.inspectPullRequest")(function* (request) {
33
+ const decoded = yield* Schema.decodeUnknownEffect(WorkPullRequestLinkRequest)(request).pipe(Effect.mapError(() => linkError(request, "identity_mismatch")));
34
+ const source = yield* store.snapshotInput();
35
+ const observedAt = Math.max(yield* Clock.currentTimeMillis, source.logicalObservedAt ?? 0);
36
+ const snapshot = yield* projectWorkSnapshots(source.events, observedAt);
37
+ const goal = snapshot.now.goals.find(({ id }) => id === decoded.goalId);
38
+ if (goal === undefined) {
39
+ return yield* linkError(decoded, "missing_provenance");
40
+ }
41
+ if (goal.review?.url !== `https://github.com/${decoded.repository}/pull/${decoded.pullRequest}` ||
42
+ goal.goalFamily?.role !== "canonical" || goal.goalFamily.canonicalGoalId !== goal.id) {
43
+ return yield* linkError(decoded, "missing_provenance");
44
+ }
45
+ if (goal.state === "completed" || goal.state === "deployed") {
46
+ return yield* linkError(decoded, "terminal_goal");
47
+ }
48
+ const goalEvent = source.events.filter(({ goal: candidate }) => candidate.id === goal.id).at(-1);
49
+ if (goalEvent === undefined || !Equal.equals(goalEvent.goal, goal)) {
50
+ return yield* linkError(decoded, "missing_provenance");
51
+ }
52
+ const lane = yield* store.currentClaim(decoded.laneId);
53
+ if (Option.isNone(lane) || lane.value.goalId !== goal.id || lane.value.phase === "shipped") {
54
+ return yield* linkError(decoded, "missing_lane");
55
+ }
56
+ const bindingIds = yield* store.bindingDispatchesForLane(decoded.laneId);
57
+ const bindingId = bindingIds[0];
58
+ if (bindingId === undefined) {
59
+ return yield* linkError(decoded, "missing_binding");
60
+ }
61
+ const binding = yield* store.agentBinding(bindingId);
62
+ if (Option.isNone(binding)) {
63
+ return yield* linkError(decoded, "missing_binding");
64
+ }
65
+ const after = yield* store.snapshotInput();
66
+ const afterEvent = after.events.filter(({ goal: candidate }) => candidate.id === goal.id).at(-1);
67
+ const afterLane = yield* store.currentClaim(decoded.laneId);
68
+ if (afterEvent?.eventId !== goalEvent.eventId || Option.isNone(afterLane) ||
69
+ afterLane.value.revision !== lane.value.revision) {
70
+ return yield* linkError(decoded, "stale_revision");
71
+ }
72
+ return yield* Schema.decodeUnknownEffect(WorkPullRequestLink)({
73
+ request: decoded,
74
+ goalEventId: goalEvent.eventId,
75
+ goal,
76
+ lane: lane.value,
77
+ binding: binding.value
78
+ }).pipe(Effect.mapError(() => linkError(decoded, "identity_mismatch")));
79
+ });
80
+ const reconcileExistingOwner = Effect.fn("HerdrWork.reconcileExistingOwner")(function* (request) {
81
+ const lane = yield* store.currentClaim(request.laneId);
82
+ if (Option.isNone(lane))
83
+ return yield* linkError(request, "missing_lane");
84
+ return yield* store.claim({
85
+ operationId: request.operationId,
86
+ goalId: request.goalId,
87
+ laneId: request.laneId,
88
+ worktree: request.worktree,
89
+ branch: request.branch,
90
+ head: request.newHead,
91
+ owner: request.expectedOwner,
92
+ parent: lane.value.parent,
93
+ phase: lane.value.phase,
94
+ expectedRevision: request.expectedRevision,
95
+ reconciliation: {
96
+ repository: request.repository,
97
+ pullRequest: request.pullRequest,
98
+ expectedHead: request.expectedHead,
99
+ expectedOwner: request.expectedOwner,
100
+ expectedGoalEventId: request.expectedGoalEventId,
101
+ bindingDispatchRequestId: request.bindingDispatchRequestId,
102
+ sessionId: request.sessionId,
103
+ worker: request.worker
104
+ }
105
+ });
106
+ });
107
+ const bindAgent = Effect.fn("HerdrWork.bindAgent")((request) => store.bindAgent(request));
108
+ const agentBinding = Effect.fn("HerdrWork.agentBinding")((dispatchRequestId) => store.agentBinding(dispatchRequestId));
4
109
  const record = Effect.fn("HerdrWork.record")((event) => store.append(event));
5
110
  const snapshots = Effect.fn("HerdrWork.snapshots")(function* (observedAt) {
6
- const timestamp = observedAt ?? (yield* Clock.currentTimeMillis);
7
- return yield* store.list().pipe(Effect.flatMap((events) => projectWorkSnapshots(events, timestamp)));
111
+ const source = yield* store.snapshotInput();
112
+ const timestamp = observedAt ?? Math.max(yield* Clock.currentTimeMillis, source.logicalObservedAt ?? 0);
113
+ return yield* projectWorkSnapshots(source.events, timestamp);
114
+ });
115
+ const recordMany = Effect.fn("HerdrWork.recordMany")((transactionId, events) => store.appendMany(transactionId, events));
116
+ const claim = Effect.fn("HerdrWork.claim")((lane) => store.claim(lane));
117
+ const currentClaim = Effect.fn("HerdrWork.currentClaim")((laneId) => store.currentClaim(laneId));
118
+ const activeGoalClaim = Effect.fn("HerdrWork.activeGoalClaim")((goalId) => store.activeGoalClaim(goalId));
119
+ const handoff = Effect.fn("HerdrWork.handoff")((decision) => store.decision(decision));
120
+ const coordinatorHandoff = Effect.fn("HerdrWork.coordinatorHandoff")((sessionId) => store.coordinatorHandoff(sessionId));
121
+ const decisions = Effect.fn("HerdrWork.decisions")((laneId) => store.decisions(laneId));
122
+ return Effect.succeed({
123
+ recoveryContext,
124
+ recoveryPreflight,
125
+ recoverExistingGoal,
126
+ reassign,
127
+ admissionPreflight,
128
+ admitExistingOwner,
129
+ agentBinding,
130
+ inspectPullRequest,
131
+ reconcileExistingOwner,
132
+ activeGoalClaim,
133
+ bindAgent,
134
+ claim,
135
+ coordinatorHandoff,
136
+ currentClaim,
137
+ decisions,
138
+ handoff,
139
+ record,
140
+ recordMany,
141
+ snapshots
8
142
  });
9
- return { record, snapshots };
10
143
  });
11
144
  //# sourceMappingURL=service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAGtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAatD,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,EAAC,KAAuB;IACjG,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAyB,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAChG,MAAM,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,QAAQ,CAAC,EAAC,UAAmB;QAC9E,MAAM,SAAS,GAAG,UAAU,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;QAChE,OAAO,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,oBAAoB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IACtG,CAAC,CAAC,CAAA;IACF,OAAO,EAAE,MAAM,EAAE,SAAS,EAAwB,CAAA;AACpD,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
package/dist/sql.d.ts ADDED
@@ -0,0 +1,30 @@
1
+ import { Effect } from "effect";
2
+ import type { SqlClient as SqlClientService } from "effect/sql/SqlClient";
3
+ import type { SqlError } from "effect/sql/SqlError";
4
+ import { WorkAgentBindingAuthorityError, WorkAgentBindingConflictError, WorkCoordinatorHandoffConflictError, WorkDecisionAuthorityConflictError, WorkDecisionHandoffConflictError, WorkDecisionRevisionConflictError, WorkDispatchHandoffConflictError, WorkProjectionError, WorkStoreError } from "./errors.js";
5
+ import { type WorkAgentBinding as WorkAgentBindingType, type WorkAgentBindingRequest as WorkAgentBindingRequestType, type WorkDispatchHandoff as WorkDispatchHandoffType } from "./model.js";
6
+ export interface SqliteWorkBridge {
7
+ /** Creates the Work decision and dispatch-link tables in the caller's SQL database. */
8
+ readonly initialize: Effect.Effect<void, WorkStoreError | SqlError>;
9
+ /** Commits the worker identity, goal checkpoint, and lane CAS inside the caller transaction. */
10
+ readonly acceptAgentBinding: (request: WorkAgentBindingRequestType, occurredAt: number) => Effect.Effect<{
11
+ readonly _tag: "inserted";
12
+ readonly binding: WorkAgentBindingType;
13
+ } | {
14
+ readonly _tag: "replayed";
15
+ readonly binding: WorkAgentBindingType;
16
+ }, WorkAgentBindingAuthorityError | WorkAgentBindingConflictError | WorkProjectionError | WorkStoreError | SqlError>;
17
+ /** Reads an exact binding for restart replay without repairing a partial activation. */
18
+ readonly requireAgentBinding: (request: WorkAgentBindingRequestType) => Effect.Effect<WorkAgentBindingType, WorkAgentBindingConflictError | WorkStoreError | SqlError>;
19
+ /** Inserts or replays one binding; the caller owns the surrounding transaction. */
20
+ readonly acceptDispatchHandoff: (binding: WorkDispatchHandoffType) => Effect.Effect<WorkDispatchHandoffType, WorkCoordinatorHandoffConflictError | WorkDecisionAuthorityConflictError | WorkDecisionHandoffConflictError | WorkDecisionRevisionConflictError | WorkDispatchHandoffConflictError | WorkProjectionError | WorkStoreError | SqlError>;
21
+ /** Verifies a replayed binding without repairing a previously incomplete dispatch. */
22
+ readonly requireDispatchHandoff: (binding: WorkDispatchHandoffType) => Effect.Effect<WorkDispatchHandoffType, WorkDecisionAuthorityConflictError | WorkDispatchHandoffConflictError | WorkStoreError | SqlError>;
23
+ }
24
+ /**
25
+ * SQLite-backed Work operations designed to run inside a coordinator transaction.
26
+ * It does not begin or commit a transaction itself, so dispatch acceptance and
27
+ * Work lineage either commit together or roll back together.
28
+ */
29
+ export declare const makeSqliteWorkBridge: (sql: SqlClientService) => SqliteWorkBridge;
30
+ //# sourceMappingURL=sql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql.d.ts","sourceRoot":"","sources":["../src/sql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAiB,MAAM,QAAQ,CAAA;AAC9C,OAAO,KAAK,EAAE,SAAS,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAEnD,OAAO,EACL,8BAA8B,EAC9B,6BAA6B,EAC7B,mCAAmC,EACnC,kCAAkC,EAClC,gCAAgC,EAChC,iCAAiC,EACjC,gCAAgC,EAChC,mBAAmB,EACnB,cAAc,EACf,MAAM,aAAa,CAAA;AAkCpB,OAAO,EAEL,KAAK,gBAAgB,IAAI,oBAAoB,EAE7C,KAAK,uBAAuB,IAAI,2BAA2B,EAI3D,KAAK,mBAAmB,IAAI,uBAAuB,EAKpD,MAAM,YAAY,CAAA;AAgSnB,MAAM,WAAW,gBAAgB;IAC/B,uFAAuF;IACvF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,GAAG,QAAQ,CAAC,CAAA;IACnE,gGAAgG;IAChG,QAAQ,CAAC,kBAAkB,EAAE,CAC3B,OAAO,EAAE,2BAA2B,EACpC,UAAU,EAAE,MAAM,KACf,MAAM,CAAC,MAAM,CACd;QAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAA;KAAE,GACrE;QAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAA;KAAE,EACrE,8BAA8B,GAC9B,6BAA6B,GAC7B,mBAAmB,GACnB,cAAc,GACd,QAAQ,CACX,CAAA;IACD,wFAAwF;IACxF,QAAQ,CAAC,mBAAmB,EAAE,CAC5B,OAAO,EAAE,2BAA2B,KACjC,MAAM,CAAC,MAAM,CAChB,oBAAoB,EACpB,6BAA6B,GAAG,cAAc,GAAG,QAAQ,CAC1D,CAAA;IACD,mFAAmF;IACnF,QAAQ,CAAC,qBAAqB,EAAE,CAC9B,OAAO,EAAE,uBAAuB,KAC7B,MAAM,CAAC,MAAM,CAChB,uBAAuB,EACrB,mCAAmC,GACnC,kCAAkC,GAClC,gCAAgC,GAChC,iCAAiC,GACjC,gCAAgC,GAChC,mBAAmB,GACnB,cAAc,GACd,QAAQ,CACX,CAAA;IACD,sFAAsF;IACtF,QAAQ,CAAC,sBAAsB,EAAE,CAC/B,OAAO,EAAE,uBAAuB,KAC7B,MAAM,CAAC,MAAM,CAChB,uBAAuB,EACvB,kCAAkC,GAAG,gCAAgC,GAAG,cAAc,GAAG,QAAQ,CAClG,CAAA;CACF;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,QAAS,gBAAgB,KAAG,gBAylD5D,CAAA"}