@usine/orchestrator 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 (59) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +126 -1
  3. package/dist/board/projection.d.ts +8 -0
  4. package/dist/board/projection.d.ts.map +1 -0
  5. package/dist/board/projection.js +151 -0
  6. package/dist/board/projection.js.map +1 -0
  7. package/dist/credentials.d.ts +12 -0
  8. package/dist/credentials.d.ts.map +1 -0
  9. package/dist/credentials.js +62 -0
  10. package/dist/credentials.js.map +1 -0
  11. package/dist/exe-dev.d.ts +7 -0
  12. package/dist/exe-dev.d.ts.map +1 -0
  13. package/dist/exe-dev.js +16 -0
  14. package/dist/exe-dev.js.map +1 -0
  15. package/dist/idle-triggers.d.ts +6 -0
  16. package/dist/idle-triggers.d.ts.map +1 -0
  17. package/dist/idle-triggers.js +29 -0
  18. package/dist/idle-triggers.js.map +1 -0
  19. package/dist/index.d.ts +11 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +11 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/local.d.ts +20 -0
  24. package/dist/local.d.ts.map +1 -0
  25. package/dist/local.js +46 -0
  26. package/dist/local.js.map +1 -0
  27. package/dist/operator/model.d.ts +280 -0
  28. package/dist/operator/model.d.ts.map +1 -0
  29. package/dist/operator/model.js +242 -0
  30. package/dist/operator/model.js.map +1 -0
  31. package/dist/operator/projection.d.ts +17 -0
  32. package/dist/operator/projection.d.ts.map +1 -0
  33. package/dist/operator/projection.js +130 -0
  34. package/dist/operator/projection.js.map +1 -0
  35. package/dist/operator/service.d.ts +36 -0
  36. package/dist/operator/service.d.ts.map +1 -0
  37. package/dist/operator/service.js +248 -0
  38. package/dist/operator/service.js.map +1 -0
  39. package/dist/orchestrator.d.ts +13 -0
  40. package/dist/orchestrator.d.ts.map +1 -0
  41. package/dist/orchestrator.js +14 -0
  42. package/dist/orchestrator.js.map +1 -0
  43. package/dist/polling-triggers.d.ts +40 -0
  44. package/dist/polling-triggers.d.ts.map +1 -0
  45. package/dist/polling-triggers.js +394 -0
  46. package/dist/polling-triggers.js.map +1 -0
  47. package/dist/schedule-triggers.d.ts +65 -0
  48. package/dist/schedule-triggers.d.ts.map +1 -0
  49. package/dist/schedule-triggers.js +391 -0
  50. package/dist/schedule-triggers.js.map +1 -0
  51. package/dist/scheduler.d.ts +15 -0
  52. package/dist/scheduler.d.ts.map +1 -0
  53. package/dist/scheduler.js +122 -0
  54. package/dist/scheduler.js.map +1 -0
  55. package/dist/trigger-submission.d.ts +60 -0
  56. package/dist/trigger-submission.d.ts.map +1 -0
  57. package/dist/trigger-submission.js +105 -0
  58. package/dist/trigger-submission.js.map +1 -0
  59. package/package.json +61 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local.js","sourceRoot":"","sources":["../src/local.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAyC,MAAM,eAAe,CAAC;AAEpF,OAAO,EAAE,KAAK,IAAI,kBAAkB,EAA6B,MAAM,uBAAuB,CAAC;AAC/F,OAAO,EACL,KAAK,IAAI,gBAAgB,EACzB,gBAAgB,IAAI,qBAAqB,GAC1C,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,wFAAwF;AACxF,MAAM,CAAC,MAAM,KAAK,GAAG,CACnB,iBAAqC,EACrC,MAAmB,EACnB,OACgD,EAChD,EAAE;IACF,MAAM,QAAQ,GAAG,kBAAkB,CAAC;QAClC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,iBAAiB,EAAE;QAC/C,GAAG,OAAO;QACV,iBAAiB;KAClB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7E,OAAO,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;AAC/E,CAAC,CAAC;AAEF,2FAA2F;AAC3F,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,iBAAqC,EAAE,EAAE,CAChF,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAC5B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAC3F,CAAC;AAEJ;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,iBAAqC,EACrC,QAAwB,EACxB,OACgD,EAChD,EAAE;IACF,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAC9B,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,EACpC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAClC,CAAC;IACF,MAAM,WAAW,GAAG,qBAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IACpF,MAAM,MAAM,GAAG,KAAK,CAAC,iBAAiB,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CACpE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAC3B,CAAC;IACF,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CACtC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAClB,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,EACpC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAClC,CAAC;IACF,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAC5C,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAClB,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CACrC,CAAC;IACF,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC5E,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/F,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC,IAAI,CACjF,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAC5B,CAAC;IACF,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,CACtE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CACtD,CAAC;IACF,OAAO,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC1D,CAAC,CAAC"}
@@ -0,0 +1,280 @@
1
+ import { Agent, AttemptChannel } from "@usine/core";
2
+ import { TranscriptSequence } from "@usine/engine";
3
+ import { Schema } from "effect";
4
+ import { RepositoryPollFailure } from "../polling-triggers.ts";
5
+ /** Cursor for tailing the append-only transcript without replaying older events. */
6
+ export declare const TranscriptCursor: Schema.brand<Schema.Int, "TranscriptSequence">;
7
+ export type TranscriptCursor = TranscriptSequence;
8
+ export declare const ProjectStatus: Schema.Literals<readonly ["clear", "active", "needs-you"]>;
9
+ export type ProjectStatus = typeof ProjectStatus.Type;
10
+ export declare const RunStateTag: Schema.Literals<readonly ["Pending", "Waiting", "Running", "Succeeded", "Failed", "Canceled"]>;
11
+ export type RunStateTag = typeof RunStateTag.Type;
12
+ declare const InfraFailureView_base: Schema.Class<InfraFailureView, Schema.TaggedStruct<"InfraFailure", {
13
+ readonly message: Schema.String;
14
+ }>, {}>;
15
+ /** Operator-safe failure variants. Infrastructure defect causes never cross this boundary. */
16
+ export declare class InfraFailureView extends InfraFailureView_base {
17
+ }
18
+ declare const AgentFailureView_base: Schema.Class<AgentFailureView, Schema.TaggedStruct<"AgentFailure", {
19
+ readonly message: Schema.String;
20
+ }>, {}>;
21
+ export declare class AgentFailureView extends AgentFailureView_base {
22
+ }
23
+ declare const RunawayFailureView_base: Schema.Class<RunawayFailureView, Schema.TaggedStruct<"RunawayFailure", {
24
+ readonly ceiling: Schema.Literals<readonly ["wall-clock", "tokens"]>;
25
+ }>, {}>;
26
+ export declare class RunawayFailureView extends RunawayFailureView_base {
27
+ }
28
+ export declare const FailureView: Schema.Union<readonly [typeof InfraFailureView, typeof AgentFailureView, typeof RunawayFailureView]>;
29
+ export type FailureView = typeof FailureView.Type;
30
+ declare const SucceededAttemptView_base: Schema.Class<SucceededAttemptView, Schema.TaggedStruct<"Succeeded", {}>, {}>;
31
+ export declare class SucceededAttemptView extends SucceededAttemptView_base {
32
+ }
33
+ declare const FailedAttemptView_base: Schema.Class<FailedAttemptView, Schema.TaggedStruct<"Failed", {
34
+ readonly failure: Schema.Union<readonly [typeof InfraFailureView, typeof AgentFailureView, typeof RunawayFailureView]>;
35
+ }>, {}>;
36
+ export declare class FailedAttemptView extends FailedAttemptView_base {
37
+ }
38
+ declare const CanceledAttemptView_base: Schema.Class<CanceledAttemptView, Schema.TaggedStruct<"Canceled", {}>, {}>;
39
+ export declare class CanceledAttemptView extends CanceledAttemptView_base {
40
+ }
41
+ export declare const AttemptOutcomeView: Schema.Union<readonly [typeof SucceededAttemptView, typeof FailedAttemptView, typeof CanceledAttemptView]>;
42
+ export type AttemptOutcomeView = typeof AttemptOutcomeView.Type;
43
+ declare const AttemptView_base: Schema.Class<AttemptView, Schema.Struct<{
44
+ readonly id: Schema.brand<Schema.NonEmptyString, "AttemptId">;
45
+ readonly number: Schema.brand<Schema.Int, "AttemptNumber">;
46
+ readonly worker: Schema.brand<Schema.String, "WorkerName">;
47
+ readonly brain: typeof Agent.BrainSpec;
48
+ readonly startedAt: Schema.String;
49
+ readonly outcome: Schema.NullOr<Schema.Union<readonly [typeof SucceededAttemptView, typeof FailedAttemptView, typeof CanceledAttemptView]>>;
50
+ }>, {}>;
51
+ export declare class AttemptView extends AttemptView_base {
52
+ }
53
+ declare const RunView_base: Schema.Class<RunView, Schema.Struct<{
54
+ readonly id: Schema.brand<Schema.NonEmptyString, "RunId">;
55
+ readonly itemKey: Schema.brand<Schema.NonEmptyString, "ItemKey">;
56
+ readonly loop: Schema.brand<Schema.NonEmptyString, "LoopName">;
57
+ readonly repository: Schema.brand<Schema.String, "RepoName">;
58
+ readonly agent: Schema.brand<Schema.String, "AgentName">;
59
+ readonly state: Schema.Literals<readonly ["Pending", "Waiting", "Running", "Succeeded", "Failed", "Canceled"]>;
60
+ readonly loopPaused: Schema.Boolean;
61
+ readonly openedAt: Schema.String;
62
+ readonly task: Schema.String;
63
+ readonly attempts: Schema.$Array<typeof AttemptView>;
64
+ readonly resultMessage: Schema.NullOr<Schema.String>;
65
+ readonly pullRequestUrl: Schema.NullOr<Schema.String>;
66
+ readonly canApprove: Schema.Boolean;
67
+ readonly canRetry: Schema.Boolean;
68
+ readonly canCancel: Schema.Boolean;
69
+ }>, {}>;
70
+ export declare class RunView extends RunView_base {
71
+ }
72
+ export declare const BoardLaneId: Schema.brand<Schema.NonEmptyString, "BoardLaneId">;
73
+ export type BoardLaneId = typeof BoardLaneId.Type;
74
+ export declare const BoardLaneOrigin: Schema.Literals<readonly ["authored", "proposed", "fallback"]>;
75
+ export type BoardLaneOrigin = typeof BoardLaneOrigin.Type;
76
+ declare const BoardItemView_base: Schema.Class<BoardItemView, Schema.Struct<{
77
+ readonly itemKey: Schema.brand<Schema.NonEmptyString, "ItemKey">;
78
+ readonly kind: Schema.Literals<readonly ["issue", "pr"]>;
79
+ readonly number: Schema.brand<Schema.Int, "ItemNumber">;
80
+ readonly title: Schema.String;
81
+ readonly url: Schema.NonEmptyString;
82
+ readonly state: Schema.Literals<readonly ["issue-open", "issue-closed", "pr-open", "pr-closed", "pr-merged"]>;
83
+ readonly labels: Schema.$Array<Schema.brand<Schema.String, "GitHubLabelName">>;
84
+ /** All runs retained for a card, including every action the operator can take. */
85
+ readonly runs: Schema.$Array<typeof RunView>;
86
+ readonly run: Schema.NullOr<typeof RunView>;
87
+ readonly needsYou: Schema.Boolean;
88
+ }>, {}>;
89
+ export declare class BoardItemView extends BoardItemView_base {
90
+ }
91
+ declare const WritableBoardLaneView_base: Schema.Class<WritableBoardLaneView, Schema.TaggedStruct<"WritableBoardLane", {
92
+ readonly id: Schema.brand<Schema.NonEmptyString, "BoardLaneId">;
93
+ readonly name: Schema.brand<Schema.String, "LaneName">;
94
+ readonly sources: Schema.$Array<Schema.Union<readonly [typeof import("@usine/config").LabelLaneSource, typeof import("@usine/config").StateLaneSource]>>;
95
+ readonly origin: Schema.Literals<readonly ["authored", "proposed", "fallback"]>;
96
+ readonly items: Schema.$Array<typeof BoardItemView>;
97
+ readonly labels: Schema.$Array<Schema.brand<Schema.String, "GitHubLabelName">>;
98
+ }>, {}>;
99
+ export declare class WritableBoardLaneView extends WritableBoardLaneView_base {
100
+ }
101
+ declare const ReadOnlyBoardLaneView_base: Schema.Class<ReadOnlyBoardLaneView, Schema.TaggedStruct<"ReadOnlyBoardLane", {
102
+ readonly id: Schema.brand<Schema.NonEmptyString, "BoardLaneId">;
103
+ readonly name: Schema.brand<Schema.String, "LaneName">;
104
+ readonly sources: Schema.$Array<Schema.Union<readonly [typeof import("@usine/config").LabelLaneSource, typeof import("@usine/config").StateLaneSource]>>;
105
+ readonly origin: Schema.Literals<readonly ["authored", "proposed", "fallback"]>;
106
+ readonly items: Schema.$Array<typeof BoardItemView>;
107
+ }>, {}>;
108
+ export declare class ReadOnlyBoardLaneView extends ReadOnlyBoardLaneView_base {
109
+ }
110
+ export declare const BoardLaneView: Schema.Union<readonly [typeof WritableBoardLaneView, typeof ReadOnlyBoardLaneView]>;
111
+ export type BoardLaneView = typeof BoardLaneView.Type;
112
+ declare const BoardProjectionError_base: Schema.Class<BoardProjectionError, Schema.TaggedStruct<"BoardProjectionError", {
113
+ readonly repository: Schema.brand<Schema.String, "RepoName">;
114
+ readonly itemKey: Schema.brand<Schema.NonEmptyString, "ItemKey">;
115
+ readonly message: Schema.NonEmptyString;
116
+ }>, import("effect/Cause").YieldableError>;
117
+ export declare class BoardProjectionError extends BoardProjectionError_base {
118
+ }
119
+ declare const BoardView_base: Schema.Class<BoardView, Schema.Struct<{
120
+ readonly lanes: Schema.$Array<Schema.Union<readonly [typeof WritableBoardLaneView, typeof ReadOnlyBoardLaneView]>>;
121
+ readonly failures: Schema.$Array<typeof BoardProjectionError>;
122
+ }>, {}>;
123
+ export declare class BoardView extends BoardView_base {
124
+ }
125
+ declare const ProjectView_base: Schema.Class<ProjectView, Schema.Struct<{
126
+ readonly repository: Schema.brand<Schema.String, "RepoName">;
127
+ readonly status: Schema.Literals<readonly ["clear", "active", "needs-you"]>;
128
+ readonly runs: Schema.$Array<typeof RunView>;
129
+ readonly board: typeof BoardView;
130
+ }>, {}>;
131
+ export declare class ProjectView extends ProjectView_base {
132
+ }
133
+ declare const BoardMove_base: Schema.Class<BoardMove, Schema.Struct<{
134
+ readonly repository: Schema.brand<Schema.String, "RepoName">;
135
+ readonly item: Schema.brand<Schema.Int, "ItemNumber">;
136
+ readonly toLane: Schema.brand<Schema.NonEmptyString, "BoardLaneId">;
137
+ }>, {}>;
138
+ export declare class BoardMove extends BoardMove_base {
139
+ }
140
+ declare const BoardProjectNotFoundError_base: Schema.Class<BoardProjectNotFoundError, Schema.TaggedStruct<"BoardProjectNotFoundError", {
141
+ readonly repository: Schema.brand<Schema.String, "RepoName">;
142
+ }>, import("effect/Cause").YieldableError>;
143
+ export declare class BoardProjectNotFoundError extends BoardProjectNotFoundError_base {
144
+ }
145
+ declare const BoardItemNotFoundError_base: Schema.Class<BoardItemNotFoundError, Schema.TaggedStruct<"BoardItemNotFoundError", {
146
+ readonly repository: Schema.brand<Schema.String, "RepoName">;
147
+ readonly item: Schema.brand<Schema.Int, "ItemNumber">;
148
+ }>, import("effect/Cause").YieldableError>;
149
+ export declare class BoardItemNotFoundError extends BoardItemNotFoundError_base {
150
+ }
151
+ declare const BoardLaneNotFoundError_base: Schema.Class<BoardLaneNotFoundError, Schema.TaggedStruct<"BoardLaneNotFoundError", {
152
+ readonly repository: Schema.brand<Schema.String, "RepoName">;
153
+ readonly lane: Schema.brand<Schema.NonEmptyString, "BoardLaneId">;
154
+ }>, import("effect/Cause").YieldableError>;
155
+ export declare class BoardLaneNotFoundError extends BoardLaneNotFoundError_base {
156
+ }
157
+ declare const BoardLaneReadOnlyError_base: Schema.Class<BoardLaneReadOnlyError, Schema.TaggedStruct<"BoardLaneReadOnlyError", {
158
+ readonly repository: Schema.brand<Schema.String, "RepoName">;
159
+ readonly lane: Schema.brand<Schema.NonEmptyString, "BoardLaneId">;
160
+ }>, import("effect/Cause").YieldableError>;
161
+ export declare class BoardLaneReadOnlyError extends BoardLaneReadOnlyError_base {
162
+ }
163
+ declare const LoopView_base: Schema.Class<LoopView, Schema.Struct<{
164
+ readonly name: Schema.brand<Schema.NonEmptyString, "LoopName">;
165
+ readonly trigger: Schema.String;
166
+ readonly agent: Schema.brand<Schema.String, "AgentName">;
167
+ readonly paused: Schema.Boolean;
168
+ }>, {}>;
169
+ export declare class LoopView extends LoopView_base {
170
+ }
171
+ declare const ApprovalNeed_base: Schema.Class<ApprovalNeed, Schema.TaggedStruct<"ApprovalNeed", {
172
+ readonly id: Schema.String;
173
+ readonly repository: Schema.brand<Schema.String, "RepoName">;
174
+ readonly runId: Schema.brand<Schema.NonEmptyString, "RunId">;
175
+ readonly loop: Schema.brand<Schema.NonEmptyString, "LoopName">;
176
+ }>, {}>;
177
+ export declare class ApprovalNeed extends ApprovalNeed_base {
178
+ }
179
+ declare const RunFailureNeed_base: Schema.Class<RunFailureNeed, Schema.TaggedStruct<"RunFailureNeed", {
180
+ readonly id: Schema.String;
181
+ readonly repository: Schema.brand<Schema.String, "RepoName">;
182
+ readonly runId: Schema.brand<Schema.NonEmptyString, "RunId">;
183
+ readonly loop: Schema.brand<Schema.NonEmptyString, "LoopName">;
184
+ readonly failure: Schema.Union<readonly [typeof InfraFailureView, typeof AgentFailureView, typeof RunawayFailureView]>;
185
+ }>, {}>;
186
+ export declare class RunFailureNeed extends RunFailureNeed_base {
187
+ }
188
+ declare const PollFailureNeed_base: Schema.Class<PollFailureNeed, Schema.TaggedStruct<"PollFailureNeed", {
189
+ readonly id: Schema.String;
190
+ readonly failure: typeof RepositoryPollFailure;
191
+ }>, {}>;
192
+ export declare class PollFailureNeed extends PollFailureNeed_base {
193
+ }
194
+ declare const BoardProjectionNeed_base: Schema.Class<BoardProjectionNeed, Schema.TaggedStruct<"BoardProjectionNeed", {
195
+ readonly id: Schema.String;
196
+ readonly failure: typeof BoardProjectionError;
197
+ }>, {}>;
198
+ export declare class BoardProjectionNeed extends BoardProjectionNeed_base {
199
+ }
200
+ declare const ScheduleFailureNeed_base: Schema.Class<ScheduleFailureNeed, Schema.TaggedStruct<"ScheduleFailureNeed", {
201
+ readonly id: Schema.String;
202
+ readonly failure: Schema.Union<readonly [typeof import("../schedule-triggers.ts").ScheduleAgentFailure, typeof import("../schedule-triggers.ts").ScheduleCronFailure, typeof import("../schedule-triggers.ts").ScheduleTickFailure]>;
203
+ }>, {}>;
204
+ export declare class ScheduleFailureNeed extends ScheduleFailureNeed_base {
205
+ }
206
+ export declare const NeedView: Schema.Union<readonly [typeof ApprovalNeed, typeof BoardProjectionNeed, typeof RunFailureNeed, typeof PollFailureNeed, typeof ScheduleFailureNeed]>;
207
+ export type NeedView = typeof NeedView.Type;
208
+ declare const FailedTranscriptView_base: Schema.Class<FailedTranscriptView, Schema.TaggedStruct<"Failed", {
209
+ readonly failure: Schema.Union<readonly [typeof InfraFailureView, typeof AgentFailureView, typeof RunawayFailureView]>;
210
+ }>, {}>;
211
+ export declare class FailedTranscriptView extends FailedTranscriptView_base {
212
+ }
213
+ export declare const TranscriptPayload: Schema.Union<readonly [typeof AttemptChannel.Started, typeof AttemptChannel.SessionEvent, typeof AttemptChannel.Final, typeof FailedTranscriptView, typeof AttemptChannel.Interrupted, typeof AttemptChannel.Steer, typeof AttemptChannel.Interrupt]>;
214
+ export type TranscriptPayload = typeof TranscriptPayload.Type;
215
+ declare const TranscriptEventView_base: Schema.Class<TranscriptEventView, Schema.Struct<{
216
+ readonly sequence: Schema.brand<Schema.Int, "TranscriptSequence">;
217
+ readonly attemptId: Schema.brand<Schema.NonEmptyString, "AttemptId">;
218
+ readonly receivedAt: Schema.String;
219
+ readonly direction: Schema.Literals<readonly ["inbound", "outbound"]>;
220
+ readonly payload: Schema.Union<readonly [typeof AttemptChannel.Started, typeof AttemptChannel.SessionEvent, typeof AttemptChannel.Final, typeof FailedTranscriptView, typeof AttemptChannel.Interrupted, typeof AttemptChannel.Steer, typeof AttemptChannel.Interrupt]>;
221
+ }>, {}>;
222
+ export declare class TranscriptEventView extends TranscriptEventView_base {
223
+ }
224
+ declare const TranscriptPageCursor_base: Schema.Class<TranscriptPageCursor, Schema.Struct<{
225
+ readonly attemptId: Schema.brand<Schema.NonEmptyString, "AttemptId">;
226
+ readonly before: Schema.brand<Schema.Int, "TranscriptSequence">;
227
+ }>, {}>;
228
+ /** Cursor for loading one earlier page without mixing Attempts across Runs. */
229
+ export declare class TranscriptPageCursor extends TranscriptPageCursor_base {
230
+ }
231
+ declare const ColdTranscriptRequest_base: Schema.Class<ColdTranscriptRequest, Schema.TaggedStruct<"ColdTranscriptRequest", {}>, {}>;
232
+ export declare class ColdTranscriptRequest extends ColdTranscriptRequest_base {
233
+ }
234
+ declare const TailTranscriptRequest_base: Schema.Class<TailTranscriptRequest, Schema.TaggedStruct<"TailTranscriptRequest", {
235
+ readonly after: Schema.brand<Schema.Int, "TranscriptSequence">;
236
+ }>, {}>;
237
+ export declare class TailTranscriptRequest extends TailTranscriptRequest_base {
238
+ }
239
+ declare const EarlierTranscriptRequest_base: Schema.Class<EarlierTranscriptRequest, Schema.TaggedStruct<"EarlierTranscriptRequest", {
240
+ readonly attemptId: Schema.brand<Schema.NonEmptyString, "AttemptId">;
241
+ readonly before: Schema.brand<Schema.Int, "TranscriptSequence">;
242
+ }>, {}>;
243
+ export declare class EarlierTranscriptRequest extends EarlierTranscriptRequest_base {
244
+ }
245
+ export declare const TranscriptRequest: Schema.Union<readonly [typeof ColdTranscriptRequest, typeof TailTranscriptRequest, typeof EarlierTranscriptRequest]>;
246
+ export type TranscriptRequest = typeof TranscriptRequest.Type;
247
+ declare const TranscriptAttemptNotFoundError_base: Schema.Class<TranscriptAttemptNotFoundError, Schema.TaggedStruct<"TranscriptAttemptNotFoundError", {
248
+ readonly runId: Schema.brand<Schema.NonEmptyString, "RunId">;
249
+ readonly attemptId: Schema.brand<Schema.NonEmptyString, "AttemptId">;
250
+ }>, import("effect/Cause").YieldableError>;
251
+ export declare class TranscriptAttemptNotFoundError extends TranscriptAttemptNotFoundError_base {
252
+ }
253
+ declare const RunDetailView_base: Schema.Class<RunDetailView, Schema.Struct<{
254
+ readonly run: typeof RunView;
255
+ readonly eventDedupKey: Schema.String;
256
+ readonly eventPayload: Schema.Codec<Schema.Json, Schema.Json, never, never>;
257
+ readonly transcript: Schema.$Array<typeof TranscriptEventView>;
258
+ readonly earlierTranscript: Schema.$Array<typeof TranscriptPageCursor>;
259
+ }>, {}>;
260
+ export declare class RunDetailView extends RunDetailView_base {
261
+ }
262
+ declare const ReadyOverview_base: Schema.Class<ReadyOverview, Schema.TaggedStruct<"Ready", {
263
+ readonly projects: Schema.$Array<typeof ProjectView>;
264
+ readonly loops: Schema.$Array<typeof LoopView>;
265
+ readonly needsYou: Schema.$Array<Schema.Union<readonly [typeof ApprovalNeed, typeof BoardProjectionNeed, typeof RunFailureNeed, typeof PollFailureNeed, typeof ScheduleFailureNeed]>>;
266
+ }>, {}>;
267
+ export declare class ReadyOverview extends ReadyOverview_base {
268
+ }
269
+ declare const NeedsSetupOverview_base: Schema.Class<NeedsSetupOverview, Schema.TaggedStruct<"NeedsSetup", {
270
+ readonly errorTag: Schema.NonEmptyString;
271
+ readonly projects: Schema.$Array<typeof ProjectView>;
272
+ readonly loops: Schema.$Array<typeof LoopView>;
273
+ readonly needsYou: Schema.$Array<Schema.Union<readonly [typeof ApprovalNeed, typeof BoardProjectionNeed, typeof RunFailureNeed, typeof PollFailureNeed, typeof ScheduleFailureNeed]>>;
274
+ }>, {}>;
275
+ export declare class NeedsSetupOverview extends NeedsSetupOverview_base {
276
+ }
277
+ export declare const FactoryOverview: Schema.Union<readonly [typeof ReadyOverview, typeof NeedsSetupOverview]>;
278
+ export type FactoryOverview = typeof FactoryOverview.Type;
279
+ export {};
280
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/operator/model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,242 @@
1
+ import { Agent, Attempt, AttemptChannel, AttemptFailure, Item, Loop, Repository, Run, RunState, Worker, } from "@usine/core";
2
+ import { GitHubLabelName, LaneItemState, LaneName, LaneSource } from "@usine/config";
3
+ import { TranscriptSequence } from "@usine/engine";
4
+ import { Schema } from "effect";
5
+ import { RepositoryPollFailure } from "../polling-triggers.js";
6
+ import { ScheduleFailure } from "../schedule-triggers.js";
7
+ /** Cursor for tailing the append-only transcript without replaying older events. */
8
+ export const TranscriptCursor = TranscriptSequence;
9
+ export const ProjectStatus = Schema.Literals(["clear", "active", "needs-you"]);
10
+ export const RunStateTag = Schema.Literals(RunState.STATE_TAGS);
11
+ const NullableString = Schema.NullOr(Schema.String);
12
+ /** Operator-safe failure variants. Infrastructure defect causes never cross this boundary. */
13
+ export class InfraFailureView extends Schema.TaggedClass("@usine/orchestrator/InfraFailureView")("InfraFailure", { message: Schema.String }) {
14
+ }
15
+ export class AgentFailureView extends Schema.TaggedClass("@usine/orchestrator/AgentFailureView")("AgentFailure", { message: Schema.String }) {
16
+ }
17
+ export class RunawayFailureView extends Schema.TaggedClass("@usine/orchestrator/RunawayFailureView")("RunawayFailure", { ceiling: AttemptFailure.RunawayCeiling }) {
18
+ }
19
+ export const FailureView = Schema.Union([InfraFailureView, AgentFailureView, RunawayFailureView]);
20
+ export class SucceededAttemptView extends Schema.TaggedClass("@usine/orchestrator/SucceededAttemptView")("Succeeded", {}) {
21
+ }
22
+ export class FailedAttemptView extends Schema.TaggedClass("@usine/orchestrator/FailedAttemptView")("Failed", { failure: FailureView }) {
23
+ }
24
+ export class CanceledAttemptView extends Schema.TaggedClass("@usine/orchestrator/CanceledAttemptView")("Canceled", {}) {
25
+ }
26
+ export const AttemptOutcomeView = Schema.Union([
27
+ SucceededAttemptView,
28
+ FailedAttemptView,
29
+ CanceledAttemptView,
30
+ ]);
31
+ export class AttemptView extends Schema.Class("@usine/orchestrator/AttemptView")({
32
+ id: Attempt.AttemptId,
33
+ number: Attempt.AttemptNumber,
34
+ worker: Worker.Name,
35
+ brain: Agent.BrainSpec,
36
+ startedAt: Schema.String,
37
+ outcome: Schema.NullOr(AttemptOutcomeView),
38
+ }) {
39
+ }
40
+ export class RunView extends Schema.Class("@usine/orchestrator/RunView")({
41
+ id: Run.RunId,
42
+ itemKey: Item.ItemKey,
43
+ loop: Loop.LoopName,
44
+ repository: Repository.Name,
45
+ agent: Agent.Name,
46
+ state: RunStateTag,
47
+ loopPaused: Schema.Boolean,
48
+ openedAt: Schema.String,
49
+ task: Schema.String,
50
+ attempts: Schema.Array(AttemptView),
51
+ resultMessage: NullableString,
52
+ pullRequestUrl: NullableString,
53
+ canApprove: Schema.Boolean,
54
+ canRetry: Schema.Boolean,
55
+ canCancel: Schema.Boolean,
56
+ }) {
57
+ }
58
+ export const BoardLaneId = Schema.NonEmptyString.pipe(Schema.brand("BoardLaneId"));
59
+ export const BoardLaneOrigin = Schema.Literals(["authored", "proposed", "fallback"]);
60
+ export class BoardItemView extends Schema.Class("@usine/orchestrator/BoardItemView")({
61
+ itemKey: Item.ItemKey,
62
+ kind: Schema.Literals(["issue", "pr"]),
63
+ number: Item.Number,
64
+ title: Schema.String,
65
+ url: Schema.NonEmptyString,
66
+ state: LaneItemState,
67
+ labels: Schema.Array(GitHubLabelName),
68
+ /** All runs retained for a card, including every action the operator can take. */
69
+ runs: Schema.Array(RunView),
70
+ run: Schema.NullOr(RunView),
71
+ needsYou: Schema.Boolean,
72
+ }) {
73
+ }
74
+ const BoardLaneViewFields = {
75
+ id: BoardLaneId,
76
+ name: LaneName,
77
+ sources: Schema.Array(LaneSource),
78
+ origin: BoardLaneOrigin,
79
+ items: Schema.Array(BoardItemView),
80
+ };
81
+ export class WritableBoardLaneView extends Schema.TaggedClass("@usine/orchestrator/WritableBoardLaneView")("WritableBoardLane", {
82
+ ...BoardLaneViewFields,
83
+ labels: Schema.Array(GitHubLabelName).check(Schema.isNonEmpty()),
84
+ }) {
85
+ }
86
+ export class ReadOnlyBoardLaneView extends Schema.TaggedClass("@usine/orchestrator/ReadOnlyBoardLaneView")("ReadOnlyBoardLane", BoardLaneViewFields) {
87
+ }
88
+ export const BoardLaneView = Schema.Union([WritableBoardLaneView, ReadOnlyBoardLaneView]);
89
+ export class BoardProjectionError extends Schema.TaggedError("@usine/orchestrator/BoardProjectionError")("BoardProjectionError", {
90
+ repository: Repository.Name,
91
+ itemKey: Item.ItemKey,
92
+ message: Schema.NonEmptyString,
93
+ }) {
94
+ }
95
+ export class BoardView extends Schema.Class("@usine/orchestrator/BoardView")({
96
+ lanes: Schema.Array(BoardLaneView),
97
+ failures: Schema.Array(BoardProjectionError),
98
+ }) {
99
+ }
100
+ export class ProjectView extends Schema.Class("@usine/orchestrator/ProjectView")({
101
+ repository: Repository.Name,
102
+ status: ProjectStatus,
103
+ runs: Schema.Array(RunView),
104
+ board: BoardView,
105
+ }) {
106
+ }
107
+ export class BoardMove extends Schema.Class("@usine/orchestrator/BoardMove")({
108
+ repository: Repository.Name,
109
+ item: Item.Number,
110
+ toLane: BoardLaneId,
111
+ }) {
112
+ }
113
+ export class BoardProjectNotFoundError extends Schema.TaggedError("@usine/orchestrator/BoardProjectNotFoundError")("BoardProjectNotFoundError", {
114
+ repository: Repository.Name,
115
+ }) {
116
+ }
117
+ export class BoardItemNotFoundError extends Schema.TaggedError("@usine/orchestrator/BoardItemNotFoundError")("BoardItemNotFoundError", {
118
+ repository: Repository.Name,
119
+ item: Item.Number,
120
+ }) {
121
+ }
122
+ export class BoardLaneNotFoundError extends Schema.TaggedError("@usine/orchestrator/BoardLaneNotFoundError")("BoardLaneNotFoundError", {
123
+ repository: Repository.Name,
124
+ lane: BoardLaneId,
125
+ }) {
126
+ }
127
+ export class BoardLaneReadOnlyError extends Schema.TaggedError("@usine/orchestrator/BoardLaneReadOnlyError")("BoardLaneReadOnlyError", {
128
+ repository: Repository.Name,
129
+ lane: BoardLaneId,
130
+ }) {
131
+ }
132
+ export class LoopView extends Schema.Class("@usine/orchestrator/LoopView")({
133
+ name: Loop.LoopName,
134
+ trigger: Schema.String,
135
+ agent: Agent.Name,
136
+ paused: Schema.Boolean,
137
+ }) {
138
+ }
139
+ export class ApprovalNeed extends Schema.TaggedClass("@usine/orchestrator/ApprovalNeed")("ApprovalNeed", {
140
+ id: Schema.String,
141
+ repository: Repository.Name,
142
+ runId: Run.RunId,
143
+ loop: Loop.LoopName,
144
+ }) {
145
+ }
146
+ export class RunFailureNeed extends Schema.TaggedClass("@usine/orchestrator/RunFailureNeed")("RunFailureNeed", {
147
+ id: Schema.String,
148
+ repository: Repository.Name,
149
+ runId: Run.RunId,
150
+ loop: Loop.LoopName,
151
+ failure: FailureView,
152
+ }) {
153
+ }
154
+ export class PollFailureNeed extends Schema.TaggedClass("@usine/orchestrator/PollFailureNeed")("PollFailureNeed", {
155
+ id: Schema.String,
156
+ failure: RepositoryPollFailure,
157
+ }) {
158
+ }
159
+ export class BoardProjectionNeed extends Schema.TaggedClass("@usine/orchestrator/BoardProjectionNeed")("BoardProjectionNeed", {
160
+ id: Schema.String,
161
+ failure: BoardProjectionError,
162
+ }) {
163
+ }
164
+ export class ScheduleFailureNeed extends Schema.TaggedClass("@usine/orchestrator/ScheduleFailureNeed")("ScheduleFailureNeed", {
165
+ id: Schema.String,
166
+ failure: ScheduleFailure,
167
+ }) {
168
+ }
169
+ export const NeedView = Schema.Union([
170
+ ApprovalNeed,
171
+ BoardProjectionNeed,
172
+ RunFailureNeed,
173
+ PollFailureNeed,
174
+ ScheduleFailureNeed,
175
+ ]);
176
+ export class FailedTranscriptView extends Schema.TaggedClass("@usine/orchestrator/FailedTranscriptView")("Failed", { failure: FailureView }) {
177
+ }
178
+ export const TranscriptPayload = Schema.Union([
179
+ AttemptChannel.Started,
180
+ AttemptChannel.SessionEvent,
181
+ AttemptChannel.Final,
182
+ FailedTranscriptView,
183
+ AttemptChannel.Interrupted,
184
+ AttemptChannel.Steer,
185
+ AttemptChannel.Interrupt,
186
+ ]);
187
+ export class TranscriptEventView extends Schema.Class("@usine/orchestrator/TranscriptEventView")({
188
+ sequence: TranscriptCursor,
189
+ attemptId: Attempt.AttemptId,
190
+ receivedAt: Schema.String,
191
+ direction: AttemptChannel.Direction,
192
+ payload: TranscriptPayload,
193
+ }) {
194
+ }
195
+ /** Cursor for loading one earlier page without mixing Attempts across Runs. */
196
+ export class TranscriptPageCursor extends Schema.Class("@usine/orchestrator/TranscriptPageCursor")({
197
+ attemptId: Attempt.AttemptId,
198
+ before: TranscriptCursor,
199
+ }) {
200
+ }
201
+ export class ColdTranscriptRequest extends Schema.TaggedClass("@usine/orchestrator/ColdTranscriptRequest")("ColdTranscriptRequest", {}) {
202
+ }
203
+ export class TailTranscriptRequest extends Schema.TaggedClass("@usine/orchestrator/TailTranscriptRequest")("TailTranscriptRequest", { after: TranscriptCursor }) {
204
+ }
205
+ export class EarlierTranscriptRequest extends Schema.TaggedClass("@usine/orchestrator/EarlierTranscriptRequest")("EarlierTranscriptRequest", {
206
+ attemptId: Attempt.AttemptId,
207
+ before: TranscriptCursor,
208
+ }) {
209
+ }
210
+ export const TranscriptRequest = Schema.Union([
211
+ ColdTranscriptRequest,
212
+ TailTranscriptRequest,
213
+ EarlierTranscriptRequest,
214
+ ]);
215
+ export class TranscriptAttemptNotFoundError extends Schema.TaggedError("@usine/orchestrator/TranscriptAttemptNotFoundError")("TranscriptAttemptNotFoundError", {
216
+ runId: Run.RunId,
217
+ attemptId: Attempt.AttemptId,
218
+ }) {
219
+ }
220
+ export class RunDetailView extends Schema.Class("@usine/orchestrator/RunDetailView")({
221
+ run: RunView,
222
+ eventDedupKey: Schema.String,
223
+ eventPayload: Schema.Json,
224
+ transcript: Schema.Array(TranscriptEventView),
225
+ earlierTranscript: Schema.Array(TranscriptPageCursor),
226
+ }) {
227
+ }
228
+ export class ReadyOverview extends Schema.TaggedClass("@usine/orchestrator/ReadyOverview")("Ready", {
229
+ projects: Schema.Array(ProjectView),
230
+ loops: Schema.Array(LoopView),
231
+ needsYou: Schema.Array(NeedView),
232
+ }) {
233
+ }
234
+ export class NeedsSetupOverview extends Schema.TaggedClass("@usine/orchestrator/NeedsSetupOverview")("NeedsSetup", {
235
+ errorTag: Schema.NonEmptyString,
236
+ projects: Schema.Array(ProjectView),
237
+ loops: Schema.Array(LoopView),
238
+ needsYou: Schema.Array(NeedView),
239
+ }) {
240
+ }
241
+ export const FactoryOverview = Schema.Union([ReadyOverview, NeedsSetupOverview]);
242
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/operator/model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { AttemptFailure, Loop } from "@usine/core";
2
+ import { RunReader, type RunSnapshot, type RunStoreError, type RunSummary } from "@usine/engine";
3
+ import { Effect } from "effect";
4
+ import { type FailureView, type TranscriptRequest, TranscriptAttemptNotFoundError, RunView, TranscriptPageCursor, TranscriptEventView } from "./model.ts";
5
+ /** Newest rows returned by one cold drawer open per Attempt. */
6
+ export declare const COLD_TRANSCRIPT_LIMIT = 500;
7
+ /** Maximum rows returned by one live catch-up response across all Attempts. */
8
+ export declare const TAIL_TRANSCRIPT_LIMIT = 500;
9
+ export declare const failureView: (failure: AttemptFailure.AttemptFailure) => FailureView;
10
+ export declare const runView: (snapshot: RunSummary, pausedLoops: ReadonlySet<Loop.LoopName>) => RunView;
11
+ interface TranscriptRead {
12
+ readonly events: ReadonlyArray<TranscriptEventView>;
13
+ readonly earlier: ReadonlyArray<TranscriptPageCursor>;
14
+ }
15
+ export declare const readTranscript: (runs: RunReader["Service"], snapshot: RunSnapshot, request: TranscriptRequest) => Effect.Effect<TranscriptRead, RunStoreError | TranscriptAttemptNotFoundError>;
16
+ export {};
17
+ //# sourceMappingURL=projection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../src/operator/projection.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,cAAc,EAAE,IAAI,EAAwB,MAAM,aAAa,CAAC;AAClG,OAAO,EACL,SAAS,EAGT,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,UAAU,EAEhB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAY,MAAM,EAAiB,MAAM,QAAQ,CAAC;AACzD,OAAO,EAML,KAAK,WAAW,EAIhB,KAAK,iBAAiB,EACtB,8BAA8B,EAC9B,OAAO,EACP,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAEpB,gEAAgE;AAChE,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,+EAA+E;AAC/E,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC,eAAO,MAAM,WAAW,YAAa,cAAc,CAAC,cAAc,KAAG,WAKjE,CAAC;AAuBL,eAAO,MAAM,OAAO,aAAc,UAAU,eAAe,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAG,OAsBvF,CAAC;AAwBF,UAAU,cAAc;IACtB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC;IACpD,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC;CACvD;AAyCD,eAAO,MAAM,cAAc,EAAE,CAC3B,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,EAC1B,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,iBAAiB,KACvB,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,aAAa,GAAG,8BAA8B,CAgD/E,CAAC"}