@usine/engine 0.0.0 → 0.1.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 (97) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +69 -1
  3. package/dist/cursor/model.d.ts +5 -0
  4. package/dist/cursor/model.d.ts.map +1 -0
  5. package/dist/cursor/model.js +4 -0
  6. package/dist/cursor/model.js.map +1 -0
  7. package/dist/cursor/store.d.ts +18 -0
  8. package/dist/cursor/store.d.ts.map +1 -0
  9. package/dist/cursor/store.js +54 -0
  10. package/dist/cursor/store.js.map +1 -0
  11. package/dist/database/database.d.ts +15 -0
  12. package/dist/database/database.d.ts.map +1 -0
  13. package/dist/database/database.js +5 -0
  14. package/dist/database/database.js.map +1 -0
  15. package/dist/database/local-sqlite.d.ts +17 -0
  16. package/dist/database/local-sqlite.d.ts.map +1 -0
  17. package/dist/database/local-sqlite.js +45 -0
  18. package/dist/database/local-sqlite.js.map +1 -0
  19. package/dist/database/schema.d.ts +1096 -0
  20. package/dist/database/schema.d.ts.map +1 -0
  21. package/dist/database/schema.js +171 -0
  22. package/dist/database/schema.js.map +1 -0
  23. package/dist/engine.d.ts +39 -0
  24. package/dist/engine.d.ts.map +1 -0
  25. package/dist/engine.js +179 -0
  26. package/dist/engine.js.map +1 -0
  27. package/dist/index.d.ts +20 -0
  28. package/dist/index.d.ts.map +1 -0
  29. package/dist/index.js +20 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/item-projection/model.d.ts +21 -0
  32. package/dist/item-projection/model.d.ts.map +1 -0
  33. package/dist/item-projection/model.js +16 -0
  34. package/dist/item-projection/model.js.map +1 -0
  35. package/dist/item-projection/service.d.ts +25 -0
  36. package/dist/item-projection/service.d.ts.map +1 -0
  37. package/dist/item-projection/service.js +98 -0
  38. package/dist/item-projection/service.js.map +1 -0
  39. package/dist/loop-control.d.ts +16 -0
  40. package/dist/loop-control.d.ts.map +1 -0
  41. package/dist/loop-control.js +69 -0
  42. package/dist/loop-control.js.map +1 -0
  43. package/dist/model.d.ts +185 -0
  44. package/dist/model.d.ts.map +1 -0
  45. package/dist/model.js +174 -0
  46. package/dist/model.js.map +1 -0
  47. package/dist/repository-label-projection/model.d.ts +10 -0
  48. package/dist/repository-label-projection/model.d.ts.map +1 -0
  49. package/dist/repository-label-projection/model.js +11 -0
  50. package/dist/repository-label-projection/model.js.map +1 -0
  51. package/dist/repository-label-projection/service.d.ts +20 -0
  52. package/dist/repository-label-projection/service.d.ts.map +1 -0
  53. package/dist/repository-label-projection/service.js +73 -0
  54. package/dist/repository-label-projection/service.js.map +1 -0
  55. package/dist/run-reader.d.ts +20 -0
  56. package/dist/run-reader.d.ts.map +1 -0
  57. package/dist/run-reader.js +19 -0
  58. package/dist/run-reader.js.map +1 -0
  59. package/dist/step-executor.d.ts +21 -0
  60. package/dist/step-executor.d.ts.map +1 -0
  61. package/dist/step-executor.js +8 -0
  62. package/dist/step-executor.js.map +1 -0
  63. package/dist/store/codec.d.ts +431 -0
  64. package/dist/store/codec.d.ts.map +1 -0
  65. package/dist/store/codec.js +140 -0
  66. package/dist/store/codec.js.map +1 -0
  67. package/dist/store/queries.d.ts +75 -0
  68. package/dist/store/queries.d.ts.map +1 -0
  69. package/dist/store/queries.js +508 -0
  70. package/dist/store/queries.js.map +1 -0
  71. package/dist/store/store.d.ts +83 -0
  72. package/dist/store/store.d.ts.map +1 -0
  73. package/dist/store/store.js +374 -0
  74. package/dist/store/store.js.map +1 -0
  75. package/dist/workflow.d.ts +14 -0
  76. package/dist/workflow.d.ts.map +1 -0
  77. package/dist/workflow.js +105 -0
  78. package/dist/workflow.js.map +1 -0
  79. package/drizzle/20260825055549_initial_runtime/migration.sql +73 -0
  80. package/drizzle/20260825055549_initial_runtime/snapshot.json +592 -0
  81. package/drizzle/20260830191125_polling_cursors/migration.sql +5 -0
  82. package/drizzle/20260830191125_polling_cursors/snapshot.json +629 -0
  83. package/drizzle/20260831073158_attempt_channel/migration.sql +36 -0
  84. package/drizzle/20260831073158_attempt_channel/snapshot.json +845 -0
  85. package/drizzle/20260831133534_agent_context/migration.sql +49 -0
  86. package/drizzle/20260831133534_agent_context/snapshot.json +897 -0
  87. package/drizzle/20260831134612_attempt_brain/migration.sql +26 -0
  88. package/drizzle/20260831134612_attempt_brain/snapshot.json +923 -0
  89. package/drizzle/20260831194605_loop_runtime/migration.sql +4 -0
  90. package/drizzle/20260831194605_loop_runtime/snapshot.json +954 -0
  91. package/drizzle/20260901073233_projection_revision/migration.sql +55 -0
  92. package/drizzle/20260901073233_projection_revision/snapshot.json +991 -0
  93. package/drizzle/20260901180433_item_projections/migration.sql +22 -0
  94. package/drizzle/20260901180433_item_projections/snapshot.json +1110 -0
  95. package/drizzle/20260901185146_repository_label_projections/migration.sql +17 -0
  96. package/drizzle/20260901185146_repository_label_projections/snapshot.json +1147 -0
  97. package/package.json +53 -4
@@ -0,0 +1,140 @@
1
+ import { Agent, Attempt, AttemptChannel, Event, Item, Loop, Repository, Run, RunState, Step, StepResult, Worker, } from "@usine/core";
2
+ import { Effect, Option, Schema } from "effect";
3
+ import { ApprovalRequirement, EnginePersistenceError, IgnoreReason, ProjectionRevision, RunStoreError, RunSummary, Submission, TranscriptEntry, TranscriptSequence, WorkflowCommand, } from "../model.js";
4
+ export const EventRouteRow = Schema.Struct({
5
+ eventId: Event.EventId,
6
+ dedupKey: Event.DedupKey,
7
+ payload: Schema.Json,
8
+ receivedAt: Schema.DateTimeUtcFromString,
9
+ itemKey: Item.ItemKey,
10
+ loop: Loop.LoopName,
11
+ step: Step.StepName,
12
+ approval: ApprovalRequirement,
13
+ repository: Repository.Name,
14
+ revision: Repository.Revision,
15
+ task: AttemptChannel.Task,
16
+ agent: Agent.Agent,
17
+ parentModel: Schema.NullOr(Agent.ModelId),
18
+ });
19
+ export const RunRow = Schema.Struct({
20
+ itemKey: Item.ItemKey,
21
+ repository: Repository.Name,
22
+ revision: Repository.Revision,
23
+ task: AttemptChannel.Task,
24
+ agent: Agent.Agent,
25
+ parentModel: Schema.NullOr(Agent.ModelId),
26
+ runId: Run.RunId,
27
+ eventId: Event.EventId,
28
+ loop: Loop.LoopName,
29
+ state: RunState.RunState,
30
+ openedAt: Schema.DateTimeUtcFromString,
31
+ stepName: Step.StepName,
32
+ result: Schema.NullOr(StepResult.StepResult),
33
+ });
34
+ export const AttemptRow = Schema.Struct({
35
+ attemptId: Attempt.AttemptId,
36
+ runId: Run.RunId,
37
+ stepName: Step.StepName,
38
+ worker: Worker.Name,
39
+ number: Attempt.AttemptNumber,
40
+ brain: Agent.BrainSpec,
41
+ parentModel: Schema.NullOr(Agent.ModelId),
42
+ startedAt: Schema.DateTimeUtcFromString,
43
+ outcome: Schema.NullOr(Attempt.Outcome),
44
+ });
45
+ export const TranscriptRow = Schema.Struct({
46
+ sequence: TranscriptSequence,
47
+ attemptId: Attempt.AttemptId,
48
+ direction: AttemptChannel.Direction,
49
+ envelope: AttemptChannel.Envelope,
50
+ receivedAt: Schema.DateTimeUtcFromString,
51
+ });
52
+ const RecoverableRunRow = Schema.Struct({
53
+ ...EventRouteRow.fields,
54
+ runId: Run.RunId,
55
+ state: RunState.RunState,
56
+ });
57
+ const RunIdRow = Schema.Struct({ runId: Run.RunId });
58
+ const DiscardRow = Schema.Struct({ reason: IgnoreReason });
59
+ export const WorkflowCommandRow = Schema.Struct({
60
+ runId: Run.RunId,
61
+ command: WorkflowCommand,
62
+ });
63
+ const ProjectionRevisionRow = Schema.Struct({ revision: ProjectionRevision });
64
+ export const decodeEventRoutes = Schema.decodeUnknownEffect(Schema.Array(EventRouteRow));
65
+ export const decodeRunRows = Schema.decodeUnknownEffect(Schema.Array(RunRow));
66
+ export const decodeAttemptRows = Schema.decodeUnknownEffect(Schema.Array(AttemptRow));
67
+ export const decodeRecoverableRuns = Schema.decodeUnknownEffect(Schema.Array(RecoverableRunRow));
68
+ export const decodeRunIds = Schema.decodeUnknownEffect(Schema.Array(RunIdRow));
69
+ export const decodeDiscards = Schema.decodeUnknownEffect(Schema.Array(DiscardRow));
70
+ export const decodeWorkflowCommands = Schema.decodeUnknownEffect(Schema.Array(WorkflowCommandRow));
71
+ export const decodeProjectionRevision = Schema.decodeUnknownEffect(Schema.Array(ProjectionRevisionRow));
72
+ export const decodeTranscriptRows = Schema.decodeUnknownEffect(Schema.Array(TranscriptRow));
73
+ export const encodePayload = Schema.encodeSync(Schema.Json);
74
+ export const encodeDateTime = Schema.encodeSync(Schema.DateTimeUtcFromString);
75
+ export const encodeRunState = Schema.encodeSync(RunState.RunState);
76
+ export const encodeOutcome = Schema.encodeSync(Attempt.Outcome);
77
+ export const encodeStepResult = Schema.encodeSync(StepResult.StepResult);
78
+ export const encodeEnvelope = Schema.encodeSync(AttemptChannel.Envelope);
79
+ export const encodeAgent = Schema.encodeSync(Agent.Agent);
80
+ export const encodeBrainSpec = Schema.encodeSync(Agent.BrainSpec);
81
+ const isRunStoreError = Schema.is(RunStoreError);
82
+ export const persistence = (operation) => (effect) => Effect.mapError(effect, (error) => isRunStoreError(error) ? error : new EnginePersistenceError({ operation, cause: error }));
83
+ export const eventFromRow = (row) => new Event.Event({
84
+ id: row.eventId,
85
+ dedupKey: row.dedupKey,
86
+ payload: row.payload,
87
+ receivedAt: row.receivedAt,
88
+ });
89
+ export const submissionFromRow = (row) => new Submission({
90
+ event: eventFromRow(row),
91
+ itemKey: row.itemKey,
92
+ loop: row.loop,
93
+ step: row.step,
94
+ approval: row.approval,
95
+ repository: row.repository,
96
+ revision: row.revision,
97
+ task: row.task,
98
+ agent: row.agent,
99
+ parentModel: Option.fromNullishOr(row.parentModel),
100
+ });
101
+ export const runFromRow = (row) => new Run.Run({
102
+ id: row.runId,
103
+ eventId: row.eventId,
104
+ loop: row.loop,
105
+ state: row.state,
106
+ openedAt: row.openedAt,
107
+ });
108
+ export const stepFromRow = (row) => new Step.Step({
109
+ runId: row.runId,
110
+ name: row.stepName,
111
+ result: Option.fromNullishOr(row.result),
112
+ });
113
+ export const attemptFromRow = (row) => new Attempt.Attempt({
114
+ id: row.attemptId,
115
+ runId: row.runId,
116
+ stepName: row.stepName,
117
+ worker: row.worker,
118
+ number: row.number,
119
+ brain: row.brain,
120
+ parentModel: Option.fromNullishOr(row.parentModel),
121
+ startedAt: row.startedAt,
122
+ outcome: Option.fromNullishOr(row.outcome),
123
+ });
124
+ export const runSummaryFromRow = (row, storedAttempts) => new RunSummary({
125
+ itemKey: row.itemKey,
126
+ run: runFromRow(row),
127
+ step: stepFromRow(row),
128
+ attempts: storedAttempts.map(attemptFromRow),
129
+ repository: row.repository,
130
+ task: row.task,
131
+ agent: row.agent,
132
+ });
133
+ export const transcriptEntryFromRow = (row) => new TranscriptEntry({
134
+ sequence: row.sequence,
135
+ attemptId: row.attemptId,
136
+ direction: row.direction,
137
+ envelope: row.envelope,
138
+ receivedAt: row.receivedAt,
139
+ });
140
+ //# sourceMappingURL=codec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec.js","sourceRoot":"","sources":["../../src/store/codec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ import { Attempt, AttemptChannel, Event, RunState, StepResult } from "@usine/core";
2
+ import type { Agent } from "@usine/core";
3
+ import { DateTime, Effect, Option, Schema } from "effect";
4
+ import type { RunDatabaseClient } from "../database/database.ts";
5
+ import { RunNotFoundError, RunSnapshot, RunSummary, Submission } from "../model.ts";
6
+ export declare const queriesFor: (database: RunDatabaseClient) => {
7
+ readonly addAttempt: (attempt: Attempt.Attempt) => Effect.Effect<void, import("drizzle-orm/effect-core").EffectDrizzleQueryError, never>;
8
+ readonly appendTranscript: (direction: "inbound" | "outbound", envelope: AttemptChannel.InboundEnvelope | AttemptChannel.OutboundEnvelope, receivedAt: DateTime.Utc) => Effect.Effect<void, import("drizzle-orm/effect-core").EffectDrizzleQueryError, never>;
9
+ readonly approvalExists: (runId: string & import("effect/Brand").Brand<"RunId">) => Effect.Effect<boolean, import("drizzle-orm/effect-core").EffectDrizzleQueryError, never>;
10
+ readonly blockingRun: (loop: string & import("effect/Brand").Brand<"LoopName">, itemKey: string & import("effect/Brand").Brand<"ItemKey">) => Effect.Effect<readonly {
11
+ readonly runId: string & import("effect/Brand").Brand<"RunId">;
12
+ }[], import("drizzle-orm/effect-core").EffectDrizzleQueryError | Schema.SchemaError, never>;
13
+ readonly closeAttempt: (attemptId: string & import("effect/Brand").Brand<"AttemptId">, outcome: Attempt.Canceled | Attempt.Failed | Attempt.Succeeded) => Effect.Effect<void, import("drizzle-orm/effect-core").EffectDrizzleQueryError, never>;
14
+ readonly completeWorkflowCommand: (runId: string & import("effect/Brand").Brand<"RunId">, command: "Approve" | "Continue" | "Interrupt" | "Resume") => Effect.Effect<void, import("drizzle-orm/effect-core").EffectDrizzleQueryError, never>;
15
+ readonly createRun: (submission: Submission, eventId: string & import("effect/Brand").Brand<"EventId">, runId: string & import("effect/Brand").Brand<"RunId">) => Effect.Effect<void, import("drizzle-orm/effect-core").EffectDrizzleQueryError, never>;
16
+ readonly eventRouteByRun: (runId: string & import("effect/Brand").Brand<"RunId">) => Effect.Effect<readonly {
17
+ readonly eventId: string & import("effect/Brand").Brand<"EventId">;
18
+ readonly dedupKey: string & import("effect/Brand").Brand<"DedupKey">;
19
+ readonly payload: Schema.Json;
20
+ readonly receivedAt: DateTime.Utc;
21
+ readonly itemKey: string & import("effect/Brand").Brand<"ItemKey">;
22
+ readonly loop: string & import("effect/Brand").Brand<"LoopName">;
23
+ readonly step: string & import("effect/Brand").Brand<"StepName">;
24
+ readonly approval: "none" | "required";
25
+ readonly repository: string & import("effect/Brand").Brand<"RepoName">;
26
+ readonly revision: string & import("effect/Brand").Brand<"RepositoryRevision">;
27
+ readonly task: string & import("effect/Brand").Brand<"AttemptTask">;
28
+ readonly agent: Agent.Agent;
29
+ readonly parentModel: (string & import("effect/Brand").Brand<"ModelId">) | null;
30
+ }[], import("drizzle-orm/effect-core").EffectDrizzleQueryError | Schema.SchemaError, never>;
31
+ readonly hasWorkflowCommand: (runId: string & import("effect/Brand").Brand<"RunId">, command: "Approve" | "Continue" | "Interrupt" | "Resume") => Effect.Effect<boolean, import("drizzle-orm/effect-core").EffectDrizzleQueryError, never>;
32
+ readonly ignoredEvent: (eventId: string & import("effect/Brand").Brand<"EventId">) => Effect.Effect<readonly {
33
+ readonly reason: "revoked" | "superseded";
34
+ }[], import("drizzle-orm/effect-core").EffectDrizzleQueryError | Schema.SchemaError, never>;
35
+ readonly nextQueued: (runId: string & import("effect/Brand").Brand<"RunId">) => Effect.Effect<Option.Option<Submission>, import("drizzle-orm/effect-core").EffectDrizzleQueryError | Schema.SchemaError, never>;
36
+ readonly pendingWorkflowCommands: () => Effect.Effect<{
37
+ readonly runId: string & import("effect/Brand").Brand<"RunId">;
38
+ readonly command: "Approve" | "Continue" | "Interrupt" | "Resume";
39
+ }[], import("drizzle-orm/effect-core").EffectDrizzleQueryError | Schema.SchemaError, never>;
40
+ readonly recordTriggerEvent: (submission: Submission) => Effect.Effect<Submission, import("drizzle-orm/effect-core").EffectDrizzleQueryError | Schema.SchemaError, never>;
41
+ readonly recoverable: () => Effect.Effect<readonly {
42
+ readonly eventId: string & import("effect/Brand").Brand<"EventId">;
43
+ readonly dedupKey: string & import("effect/Brand").Brand<"DedupKey">;
44
+ readonly payload: Schema.Json;
45
+ readonly receivedAt: DateTime.Utc;
46
+ readonly itemKey: string & import("effect/Brand").Brand<"ItemKey">;
47
+ readonly loop: string & import("effect/Brand").Brand<"LoopName">;
48
+ readonly step: string & import("effect/Brand").Brand<"StepName">;
49
+ readonly approval: "none" | "required";
50
+ readonly repository: string & import("effect/Brand").Brand<"RepoName">;
51
+ readonly revision: string & import("effect/Brand").Brand<"RepositoryRevision">;
52
+ readonly task: string & import("effect/Brand").Brand<"AttemptTask">;
53
+ readonly agent: Agent.Agent;
54
+ readonly parentModel: (string & import("effect/Brand").Brand<"ModelId">) | null;
55
+ readonly runId: string & import("effect/Brand").Brand<"RunId">;
56
+ readonly state: RunState.Canceled | RunState.Failed | RunState.Pending | RunState.Running | RunState.Succeeded | RunState.Waiting;
57
+ }[], import("drizzle-orm/effect-core").EffectDrizzleQueryError | Schema.SchemaError, never>;
58
+ readonly recordApproval: (runId: string & import("effect/Brand").Brand<"RunId">, approval: Event.Event) => Effect.Effect<void, import("drizzle-orm/effect-core").EffectDrizzleQueryError, never>;
59
+ readonly requestInterrupt: (runId: string & import("effect/Brand").Brand<"RunId">) => Effect.Effect<void, import("drizzle-orm/effect-core").EffectDrizzleQueryError, never>;
60
+ readonly requestWorkflowCommand: (runId: string & import("effect/Brand").Brand<"RunId">, command: "Approve" | "Continue" | "Interrupt" | "Resume") => Effect.Effect<void, import("drizzle-orm/effect-core").EffectDrizzleQueryError, never>;
61
+ readonly revision: () => Effect.Effect<Option.Option<number & import("effect/Brand").Brand<"ProjectionRevision">>, import("drizzle-orm/effect-core").EffectDrizzleQueryError | Schema.SchemaError, never>;
62
+ readonly revokeUnstarted: (loop: string & import("effect/Brand").Brand<"LoopName">, itemKey: string & import("effect/Brand").Brand<"ItemKey">) => Effect.Effect<readonly {
63
+ readonly runId: string & import("effect/Brand").Brand<"RunId">;
64
+ }[], import("drizzle-orm/effect-core").EffectDrizzleQueryError | Schema.SchemaError, never>;
65
+ readonly runSummaries: (closedLimit: number) => Effect.Effect<RunSummary[], import("drizzle-orm/effect-core").EffectDrizzleQueryError | Schema.SchemaError, never>;
66
+ readonly runForEvent: (eventId: string & import("effect/Brand").Brand<"EventId">) => Effect.Effect<readonly {
67
+ readonly runId: string & import("effect/Brand").Brand<"RunId">;
68
+ }[], import("drizzle-orm/effect-core").EffectDrizzleQueryError | Schema.SchemaError, never>;
69
+ readonly snapshot: (runId: string & import("effect/Brand").Brand<"RunId">) => Effect.Effect<RunSnapshot, import("drizzle-orm/effect-core").EffectDrizzleQueryError | RunNotFoundError | Schema.SchemaError, never>;
70
+ readonly transcript: (query: import("../model.ts").TranscriptAllQuery | import("../model.ts").TranscriptPageQuery | import("../model.ts").TranscriptTailQuery) => Effect.Effect<import("../model.ts").TranscriptEntry[], import("drizzle-orm/effect-core").EffectDrizzleQueryError | Schema.SchemaError, never>;
71
+ readonly updateStepResult: (runId: string & import("effect/Brand").Brand<"RunId">, stepName: string & import("effect/Brand").Brand<"StepName">, result: StepResult.StepResult) => Effect.Effect<void, import("drizzle-orm/effect-core").EffectDrizzleQueryError, never>;
72
+ readonly updateAttemptParentModel: (attemptId: string & import("effect/Brand").Brand<"AttemptId">, parentModel: string & import("effect/Brand").Brand<"ModelId">) => Effect.Effect<void, import("drizzle-orm/effect-core").EffectDrizzleQueryError, never>;
73
+ readonly updateState: (runId: string & import("effect/Brand").Brand<"RunId">, state: RunState.Canceled | RunState.Failed | RunState.Pending | RunState.Running | RunState.Succeeded | RunState.Waiting) => Effect.Effect<undefined, import("drizzle-orm/effect-core").EffectDrizzleQueryError | RunNotFoundError, never>;
74
+ };
75
+ //# sourceMappingURL=queries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../src/store/queries.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,cAAc,EACd,KAAK,EAIL,QAAQ,EAER,UAAU,EACX,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAS,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAajE,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,UAAU,EAIX,MAAM,aAAa,CAAC;AAkFrB,eAAO,MAAM,UAAU,aAAc,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAilBrD,CAAC"}