@usine/orchestrator 0.3.0 → 0.4.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.
- package/LICENSE +661 -21
- package/README.md +32 -9
- package/dist/board/items.d.ts +14 -3
- package/dist/board/items.d.ts.map +1 -1
- package/dist/board/items.js +29 -1
- package/dist/board/items.js.map +1 -1
- package/dist/board/projection.d.ts +2 -1
- package/dist/board/projection.d.ts.map +1 -1
- package/dist/board/projection.js +20 -10
- package/dist/board/projection.js.map +1 -1
- package/dist/board/tasks.d.ts +1 -1
- package/dist/board/tasks.d.ts.map +1 -1
- package/dist/board/tasks.js +7 -3
- package/dist/board/tasks.js.map +1 -1
- package/dist/cloudflare.d.ts +32 -0
- package/dist/cloudflare.d.ts.map +1 -0
- package/dist/cloudflare.js +68 -0
- package/dist/cloudflare.js.map +1 -0
- package/dist/current-instance/changes.d.ts +3 -3
- package/dist/current-instance/changes.d.ts.map +1 -1
- package/dist/current-instance/changes.js +6 -3
- package/dist/current-instance/changes.js.map +1 -1
- package/dist/current-instance/current-instance.d.ts +3 -3
- package/dist/exe-dev.d.ts +1 -1
- package/dist/exe-dev.d.ts.map +1 -1
- package/dist/exe-dev.js +3 -1
- package/dist/exe-dev.js.map +1 -1
- package/dist/http-client.d.ts +8 -0
- package/dist/http-client.d.ts.map +1 -0
- package/dist/http-client.js +8 -0
- package/dist/http-client.js.map +1 -0
- package/dist/lease-order.d.ts +60 -0
- package/dist/lease-order.d.ts.map +1 -0
- package/dist/lease-order.js +76 -0
- package/dist/lease-order.js.map +1 -0
- package/dist/local.d.ts +1 -1
- package/dist/local.d.ts.map +1 -1
- package/dist/local.js +3 -1
- package/dist/local.js.map +1 -1
- package/dist/operator/attempt.d.ts +22 -3
- package/dist/operator/attempt.d.ts.map +1 -1
- package/dist/operator/attempt.js +22 -3
- package/dist/operator/attempt.js.map +1 -1
- package/dist/operator/board.d.ts +8 -3
- package/dist/operator/board.d.ts.map +1 -1
- package/dist/operator/board.js +8 -4
- package/dist/operator/board.js.map +1 -1
- package/dist/operator/configuration.d.ts +65 -9
- package/dist/operator/configuration.d.ts.map +1 -1
- package/dist/operator/configuration.js +90 -10
- package/dist/operator/configuration.js.map +1 -1
- package/dist/operator/desk.d.ts +33 -8
- package/dist/operator/desk.d.ts.map +1 -1
- package/dist/operator/desk.js +73 -11
- package/dist/operator/desk.js.map +1 -1
- package/dist/operator/http.d.ts +14 -79
- package/dist/operator/http.d.ts.map +1 -1
- package/dist/operator/http.js +20 -14
- package/dist/operator/http.js.map +1 -1
- package/dist/operator/machines.d.ts +71 -0
- package/dist/operator/machines.d.ts.map +1 -0
- package/dist/operator/machines.js +103 -0
- package/dist/operator/machines.js.map +1 -0
- package/dist/operator/need.d.ts +15 -1
- package/dist/operator/need.d.ts.map +1 -1
- package/dist/operator/need.js +15 -0
- package/dist/operator/need.js.map +1 -1
- package/dist/operator/operator.d.ts +36 -10
- package/dist/operator/operator.d.ts.map +1 -1
- package/dist/operator/operator.js +136 -31
- package/dist/operator/operator.js.map +1 -1
- package/dist/operator/overview.d.ts +2 -2
- package/dist/operator/projection.d.ts +2 -0
- package/dist/operator/projection.d.ts.map +1 -1
- package/dist/operator/projection.js +12 -4
- package/dist/operator/projection.js.map +1 -1
- package/dist/operator/run.d.ts +30 -0
- package/dist/operator/run.d.ts.map +1 -1
- package/dist/operator/run.js +31 -1
- package/dist/operator/run.js.map +1 -1
- package/dist/operator/statistics/cache.d.ts +7 -0
- package/dist/operator/statistics/cache.d.ts.map +1 -0
- package/dist/operator/statistics/cache.js +40 -0
- package/dist/operator/statistics/cache.js.map +1 -0
- package/dist/operator/statistics/runs.d.ts +36 -0
- package/dist/operator/statistics/runs.d.ts.map +1 -0
- package/dist/operator/statistics/runs.js +284 -0
- package/dist/operator/statistics/runs.js.map +1 -0
- package/dist/operator/statistics/statistics.d.ts +20 -0
- package/dist/operator/statistics/statistics.d.ts.map +1 -0
- package/dist/operator/statistics/statistics.js +138 -0
- package/dist/operator/statistics/statistics.js.map +1 -0
- package/dist/operator/statistics/tasks.d.ts +30 -0
- package/dist/operator/statistics/tasks.d.ts.map +1 -0
- package/dist/operator/statistics/tasks.js +244 -0
- package/dist/operator/statistics/tasks.js.map +1 -0
- package/dist/operator/statistics/view.d.ts +302 -0
- package/dist/operator/statistics/view.d.ts.map +1 -0
- package/dist/operator/statistics/view.js +243 -0
- package/dist/operator/statistics/view.js.map +1 -0
- package/dist/operator/statistics/window.d.ts +24 -0
- package/dist/operator/statistics/window.d.ts.map +1 -0
- package/dist/operator/statistics/window.js +47 -0
- package/dist/operator/statistics/window.js.map +1 -0
- package/dist/operator/task.d.ts +2 -1
- package/dist/operator/task.d.ts.map +1 -1
- package/dist/operator/task.js +3 -3
- package/dist/operator/task.js.map +1 -1
- package/dist/operator/usage.d.ts +10 -18
- package/dist/operator/usage.d.ts.map +1 -1
- package/dist/operator/usage.js +57 -42
- package/dist/operator/usage.js.map +1 -1
- package/dist/polling/closed-item-asks.d.ts +8 -0
- package/dist/polling/closed-item-asks.d.ts.map +1 -0
- package/dist/polling/closed-item-asks.js +28 -0
- package/dist/polling/closed-item-asks.js.map +1 -0
- package/dist/polling/open-pull-requests.d.ts +28 -0
- package/dist/polling/open-pull-requests.d.ts.map +1 -0
- package/dist/polling/open-pull-requests.js +131 -0
- package/dist/polling/open-pull-requests.js.map +1 -0
- package/dist/polling/polling.d.ts.map +1 -1
- package/dist/polling/polling.js +31 -18
- package/dist/polling/polling.js.map +1 -1
- package/dist/polling/repository-sync.d.ts +1 -0
- package/dist/polling/repository-sync.d.ts.map +1 -1
- package/dist/polling/repository-sync.js +1 -1
- package/dist/polling/repository-sync.js.map +1 -1
- package/dist/runtime.d.ts +2 -2
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +10 -10
- package/dist/runtime.js.map +1 -1
- package/dist/scheduler.d.ts +13 -4
- package/dist/scheduler.d.ts.map +1 -1
- package/dist/scheduler.js +312 -55
- package/dist/scheduler.js.map +1 -1
- package/dist/ssh.d.ts +71 -7
- package/dist/ssh.d.ts.map +1 -1
- package/dist/ssh.js +84 -15
- package/dist/ssh.js.map +1 -1
- package/dist/worker-engine.d.ts +7 -4
- package/dist/worker-engine.d.ts.map +1 -1
- package/dist/worker-engine.js +36 -5
- package/dist/worker-engine.js.map +1 -1
- package/dist/worker-status.d.ts +80 -10
- package/dist/worker-status.d.ts.map +1 -1
- package/dist/worker-status.js +31 -10
- package/dist/worker-status.js.map +1 -1
- package/package.json +29 -25
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../../src/operator/projection.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"projection.js","sourceRoot":"","sources":["../../src/operator/projection.ts"],"names":[],"mappings":"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"}
|
package/dist/operator/run.d.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { BrainSpec } from "@usine/core/agent/brain";
|
|
1
2
|
import { RunAgain } from "@usine/core/run/again";
|
|
2
3
|
import { ApprovalSource } from "@usine/core/run/approval";
|
|
3
4
|
import { Schema } from "effect";
|
|
4
5
|
import { AttemptView } from "./attempt.ts";
|
|
6
|
+
import { MachineView } from "./machines.ts";
|
|
5
7
|
import { TranscriptEventView, TranscriptPageCursor } from "./transcript.ts";
|
|
6
8
|
import { RunUsageView } from "./usage.ts";
|
|
7
9
|
/** The stored Run lifecycle state as shown in operator views. */
|
|
@@ -53,6 +55,8 @@ declare const RunView_base: Schema.Class<RunView, Schema.Struct<{
|
|
|
53
55
|
readonly loop: Schema.brand<Schema.NonEmptyString, "LoopName">;
|
|
54
56
|
readonly repository: Schema.brand<Schema.String, "RepositoryName">;
|
|
55
57
|
readonly agent: Schema.brand<Schema.String, "AgentName">;
|
|
58
|
+
/** The saved agent definition's brain, including any edit-and-retry amendment. */
|
|
59
|
+
readonly agentBrain: typeof BrainSpec;
|
|
56
60
|
readonly state: Schema.Literals<readonly ["Pending", "Waiting", "Queued", "Running", "Succeeded", "Failed", "Canceled"]>;
|
|
57
61
|
readonly loopPaused: Schema.Boolean;
|
|
58
62
|
readonly openedAt: Schema.String;
|
|
@@ -104,8 +108,22 @@ declare const RunDurationView_base: Schema.Class<RunDurationView, Schema.Struct<
|
|
|
104
108
|
/** The time a Run's Attempts worked, summed per Attempt. */
|
|
105
109
|
export declare class RunDurationView extends RunDurationView_base {
|
|
106
110
|
}
|
|
111
|
+
declare const UnconfirmedStopView_base: Schema.Class<UnconfirmedStopView, Schema.Struct<{
|
|
112
|
+
/** The Run of the Attempt: this Run, or an earlier Run of the Loop on the Item. */
|
|
113
|
+
readonly runId: Schema.brand<Schema.NonEmptyString, "RunId">;
|
|
114
|
+
readonly attemptNumber: Schema.brand<Schema.Int, "AttemptNumber">;
|
|
115
|
+
readonly worker: Schema.brand<Schema.String, "WorkerName">;
|
|
116
|
+
}>, {}>;
|
|
117
|
+
/**
|
|
118
|
+
* An Attempt on the Run's Loop and Item whose parent task isn't confirmed stopped. The open Run
|
|
119
|
+
* starts no Attempt until a reconcile confirms the stop (#523).
|
|
120
|
+
*/
|
|
121
|
+
export declare class UnconfirmedStopView extends UnconfirmedStopView_base {
|
|
122
|
+
}
|
|
107
123
|
declare const RunDetailView_base: Schema.Class<RunDetailView, Schema.Struct<{
|
|
108
124
|
readonly run: typeof RunView;
|
|
125
|
+
/** Whether the loaded agent differs from the saved definition; false if no longer loaded. */
|
|
126
|
+
readonly agentDefinitionChanged: Schema.Boolean;
|
|
109
127
|
readonly eventDedupKey: Schema.String;
|
|
110
128
|
readonly eventPayload: Schema.Codec<Schema.Json, Schema.Json, never, never>;
|
|
111
129
|
readonly transcript: Schema.$Array<typeof TranscriptEventView>;
|
|
@@ -117,8 +135,20 @@ declare const RunDetailView_base: Schema.Class<RunDetailView, Schema.Struct<{
|
|
|
117
135
|
readonly earlierTranscript: Schema.$Array<typeof TranscriptPageCursor>;
|
|
118
136
|
/** The Worker of the newest Attempt, or null before the first Attempt. */
|
|
119
137
|
readonly worker: Schema.withConstructorDefault<Schema.NullOr<Schema.brand<Schema.String, "WorkerName">>>;
|
|
138
|
+
/**
|
|
139
|
+
* The state of the Run's Item from the newest poll if the Item is closed, merged, or gone, else
|
|
140
|
+
* null. Needs attention leaves out a failed Run on such an Item.
|
|
141
|
+
*/
|
|
142
|
+
readonly settledItemState: Schema.withConstructorDefault<Schema.NullOr<Schema.Literals<readonly ["issue-closed", "pr-closed", "pr-merged"]>>>;
|
|
120
143
|
readonly duration: Schema.withConstructorDefault<typeof RunDurationView>;
|
|
121
144
|
readonly usage: Schema.withConstructorDefault<typeof RunUsageView>;
|
|
145
|
+
/** The unconfirmed stop that keeps the open Run from starting an Attempt, or null. */
|
|
146
|
+
readonly unconfirmedStop: Schema.withConstructorDefault<Schema.NullOr<typeof UnconfirmedStopView>>;
|
|
147
|
+
/**
|
|
148
|
+
* The machine a provisioned Worker creates or holds for the Run's next or running Attempt, or
|
|
149
|
+
* null.
|
|
150
|
+
*/
|
|
151
|
+
readonly machine: Schema.withConstructorDefault<Schema.NullOr<typeof MachineView>>;
|
|
122
152
|
}>, {}>;
|
|
123
153
|
/** A Run with its triggering Event payload, a page of its transcript, and its usage. */
|
|
124
154
|
export declare class RunDetailView extends RunDetailView_base {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/operator/run.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/operator/run.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAQpD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,iEAAiE;AACjE,eAAO,MAAM,WAAW,0GAAuC,CAAC;AAChE,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAC;;;;;AAIlD;;;GAGG;AACH,qBAAa,YAAa,SAAQ,iBAGhC;CAAG;;;;;;AAEL,wGAAwG;AACxG,qBAAa,mBAAoB,SAAQ,wBAMvC;CAAG;;;;;AAEL,sDAAsD;AACtD,qBAAa,wBAAyB,SAAQ,6BAE6B;CAAG;;;;;AAE9E,uFAAuF;AACvF,qBAAa,iBAAkB,SAAQ,sBAE2B;CAAG;;;IAKnE,iEAAiE;;;AAHnE,mGAAmG;AACnG,qBAAa,YAAa,SAAQ,iBAIhC;CAAG;;;;;;;IASH,kFAAkF;;;;;IAKlF;;;OAGG;;;;IAIH;;;OAGG;;IAEH;;;OAGG;;;;;;IAMH;;OAEG;;;IAGH;;;OAGG;;;AAzCL,6EAA6E;AAC7E,qBAAa,OAAQ,SAAQ,YA0C3B;CAAG;;IASH,iEAAiE;;IAEjE,8DAA8D;;IAE9D;;OAEG;;;AAVL,4DAA4D;AAC5D,qBAAa,eAAgB,SAAQ,oBAWnC;CAAG;;IASH,mFAAmF;;;;;AAPrF;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,wBAOvC;CAAG;;;IAMD,6FAA6F;;;;;IAK7F;;;OAGG;;;IAGH,0EAA0E;;IAE1E;;;OAGG;;;;IAcH,sFAAsF;;IAItF;;;OAGG;;;AAzCP,wFAAwF;AACxF,qBAAa,aAAc,SAAQ,kBA2ClC;CAAG"}
|
package/dist/operator/run.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { SettledItemState } from "@usine/config/board";
|
|
1
2
|
import { AgentName } from "@usine/core/agent";
|
|
3
|
+
import { BrainSpec } from "@usine/core/agent/brain";
|
|
2
4
|
import { TokenCount } from "@usine/core/agent/session";
|
|
3
|
-
import { AttemptId, AttemptTask } from "@usine/core/attempt";
|
|
5
|
+
import { AttemptId, AttemptNumber, AttemptTask } from "@usine/core/attempt";
|
|
4
6
|
import { OperatorAction, SessionTarget } from "@usine/core/attempt/channel";
|
|
5
7
|
import { ItemKey } from "@usine/core/item";
|
|
6
8
|
import { LoopName } from "@usine/core/loop";
|
|
@@ -12,6 +14,7 @@ import * as RunState from "@usine/core/run/state";
|
|
|
12
14
|
import { WorkerName } from "@usine/core/worker";
|
|
13
15
|
import { Effect, Schema } from "effect";
|
|
14
16
|
import { AttemptView } from "./attempt.js";
|
|
17
|
+
import { MachineView } from "./machines.js";
|
|
15
18
|
import { TranscriptEventView, TranscriptPageCursor } from "./transcript.js";
|
|
16
19
|
import { RunUsageView } from "./usage.js";
|
|
17
20
|
/** The stored Run lifecycle state as shown in operator views. */
|
|
@@ -53,6 +56,8 @@ export class RunView extends Schema.Class("@usine/orchestrator/RunView")({
|
|
|
53
56
|
loop: LoopName,
|
|
54
57
|
repository: RepositoryName,
|
|
55
58
|
agent: AgentName,
|
|
59
|
+
/** The saved agent definition's brain, including any edit-and-retry amendment. */
|
|
60
|
+
agentBrain: BrainSpec,
|
|
56
61
|
state: RunStateTag,
|
|
57
62
|
loopPaused: Schema.Boolean,
|
|
58
63
|
openedAt: Schema.String,
|
|
@@ -103,9 +108,22 @@ export class RunDurationView extends Schema.Class("@usine/orchestrator/RunDurati
|
|
|
103
108
|
unmeasured: Count,
|
|
104
109
|
}) {
|
|
105
110
|
}
|
|
111
|
+
/**
|
|
112
|
+
* An Attempt on the Run's Loop and Item whose parent task isn't confirmed stopped. The open Run
|
|
113
|
+
* starts no Attempt until a reconcile confirms the stop (#523).
|
|
114
|
+
*/
|
|
115
|
+
export class UnconfirmedStopView extends Schema.Class("@usine/orchestrator/UnconfirmedStopView")({
|
|
116
|
+
/** The Run of the Attempt: this Run, or an earlier Run of the Loop on the Item. */
|
|
117
|
+
runId: RunId,
|
|
118
|
+
attemptNumber: AttemptNumber,
|
|
119
|
+
worker: WorkerName,
|
|
120
|
+
}) {
|
|
121
|
+
}
|
|
106
122
|
/** A Run with its triggering Event payload, a page of its transcript, and its usage. */
|
|
107
123
|
export class RunDetailView extends Schema.Class("@usine/orchestrator/RunDetailView")({
|
|
108
124
|
run: RunView,
|
|
125
|
+
/** Whether the loaded agent differs from the saved definition; false if no longer loaded. */
|
|
126
|
+
agentDefinitionChanged: Schema.Boolean,
|
|
109
127
|
eventDedupKey: Schema.String,
|
|
110
128
|
eventPayload: Schema.Json,
|
|
111
129
|
transcript: Schema.Array(TranscriptEventView),
|
|
@@ -117,8 +135,20 @@ export class RunDetailView extends Schema.Class("@usine/orchestrator/RunDetailVi
|
|
|
117
135
|
earlierTranscript: Schema.Array(TranscriptPageCursor),
|
|
118
136
|
/** The Worker of the newest Attempt, or null before the first Attempt. */
|
|
119
137
|
worker: Schema.NullOr(WorkerName).pipe(Schema.withConstructorDefault(Effect.succeed(null))),
|
|
138
|
+
/**
|
|
139
|
+
* The state of the Run's Item from the newest poll if the Item is closed, merged, or gone, else
|
|
140
|
+
* null. Needs attention leaves out a failed Run on such an Item.
|
|
141
|
+
*/
|
|
142
|
+
settledItemState: Schema.NullOr(SettledItemState).pipe(Schema.withConstructorDefault(Effect.succeed(null))),
|
|
120
143
|
duration: RunDurationView.pipe(Schema.withConstructorDefault(Effect.succeed(new RunDurationView({ endedMillis: 0, runningSince: null, unmeasured: 0 })))),
|
|
121
144
|
usage: RunUsageView.pipe(Schema.withConstructorDefault(Effect.succeed(new RunUsageView({ tokens: TokenCount.make(0), pools: [], sessions: [] })))),
|
|
145
|
+
/** The unconfirmed stop that keeps the open Run from starting an Attempt, or null. */
|
|
146
|
+
unconfirmedStop: Schema.NullOr(UnconfirmedStopView).pipe(Schema.withConstructorDefault(Effect.succeed(null))),
|
|
147
|
+
/**
|
|
148
|
+
* The machine a provisioned Worker creates or holds for the Run's next or running Attempt, or
|
|
149
|
+
* null.
|
|
150
|
+
*/
|
|
151
|
+
machine: Schema.NullOr(MachineView).pipe(Schema.withConstructorDefault(Effect.succeed(null))),
|
|
122
152
|
}) {
|
|
123
153
|
}
|
|
124
154
|
//# sourceMappingURL=run.js.map
|
package/dist/operator/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/operator/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/operator/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { LoadedInstance } from "@usine/config/instance";
|
|
2
|
+
import type { RunStoreError } from "@usine/engine/engine";
|
|
3
|
+
import type { RunReader } from "@usine/engine/run-reader";
|
|
4
|
+
import { Effect } from "effect";
|
|
5
|
+
import type { StatisticsWindow } from "./view.ts";
|
|
6
|
+
export declare const cacheStatistics: <View>(revision: RunReader["Service"]["revision"], compute: (instance: LoadedInstance, window: StatisticsWindow) => Effect.Effect<View, RunStoreError>) => (instance: LoadedInstance, window: "30d" | "7d" | "all") => Effect.Effect<View, import("@usine/engine/engine").EnginePersistenceError | import("@usine/engine/engine").RunNotFoundError | import("@usine/engine/engine").RunOperationRejectedError | import("@usine/engine/engine").RunRetryBlockedError, never>;
|
|
7
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/operator/statistics/cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAsB,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,EAAS,MAAM,EAA2B,MAAM,QAAQ,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAWlD,eAAO,MAAM,eAAe,GAAI,IAAI,YACxB,SAAS,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,WACjC,CACP,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,gBAAgB,KACrB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,qTAmDxC,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Clock, Effect, Option, SynchronizedRef } from "effect";
|
|
2
|
+
const MAX_AGE_MILLIS = 5 * 60 * 1_000;
|
|
3
|
+
export const cacheStatistics = (revision, compute) => {
|
|
4
|
+
const windows = new Map();
|
|
5
|
+
return Effect.fn("Operator.statistics.cached")(function* (instance, window) {
|
|
6
|
+
yield* Effect.annotateCurrentSpan({ window });
|
|
7
|
+
let cache = windows.get(window);
|
|
8
|
+
if (cache === undefined) {
|
|
9
|
+
cache = SynchronizedRef.makeUnsafe(Option.none());
|
|
10
|
+
windows.set(window, cache);
|
|
11
|
+
}
|
|
12
|
+
return yield* SynchronizedRef.modifyEffect(cache, (cached) => Effect.gen(function* () {
|
|
13
|
+
const current = yield* revision();
|
|
14
|
+
const now = yield* Clock.currentTimeMillis;
|
|
15
|
+
if (Option.isSome(current) &&
|
|
16
|
+
Option.isSome(cached) &&
|
|
17
|
+
cached.value.revision === current.value &&
|
|
18
|
+
cached.value.instance === instance &&
|
|
19
|
+
now < cached.value.expiresAt) {
|
|
20
|
+
yield* Effect.logDebug("Statistics cache hit", { window, revision: current.value });
|
|
21
|
+
return [cached.value.view, cached];
|
|
22
|
+
}
|
|
23
|
+
yield* Effect.logDebug("Statistics cache miss", { window, revision: current });
|
|
24
|
+
if (Option.isNone(current)) {
|
|
25
|
+
yield* Effect.logWarning("Projection revision singleton is missing; the statistics cache is bypassed", { window });
|
|
26
|
+
}
|
|
27
|
+
const view = yield* compute(instance, window);
|
|
28
|
+
return [
|
|
29
|
+
view,
|
|
30
|
+
Option.map(current, (revision) => ({
|
|
31
|
+
instance,
|
|
32
|
+
revision,
|
|
33
|
+
expiresAt: now + MAX_AGE_MILLIS,
|
|
34
|
+
view,
|
|
35
|
+
})),
|
|
36
|
+
];
|
|
37
|
+
}));
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/operator/statistics/cache.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAGhE,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;AAStC,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,QAA0C,EAC1C,OAGuC,EACvC,EAAE;IACF,MAAM,OAAO,GAAG,IAAI,GAAG,EAGpB,CAAC;IAEJ,OAAO,MAAM,CAAC,EAAE,CAAC,4BAA4B,CAAC,CAAC,QAAQ,CAAC,EACtD,QAAwB,EACxB,MAAwB;QAExB,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAC9C,IAAI,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,KAAK,GAAG,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAoB,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,KAAK,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAC3D,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;YAClC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;YAC3C,IACE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;gBACtB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;gBACrB,MAAM,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,KAAK;gBACvC,MAAM,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ;gBAClC,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,EAC5B,CAAC;gBACD,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;gBACpF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAU,CAAC;YAC9C,CAAC;YACD,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;YAC/E,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CACtB,4EAA4E,EAC5E,EAAE,MAAM,EAAE,CACX,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC9C,OAAO;gBACL,IAAI;gBACJ,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;oBACjC,QAAQ;oBACR,QAAQ;oBACR,SAAS,EAAE,GAAG,GAAG,cAAc;oBAC/B,IAAI;iBACL,CAAC,CAAC;aACK,CAAC;QACb,CAAC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { Attempt } from "@usine/core/attempt";
|
|
2
|
+
import type { RunId } from "@usine/core/run";
|
|
3
|
+
import type { WorkerName } from "@usine/core/worker";
|
|
4
|
+
import type { RunSummary } from "@usine/engine/run-reader";
|
|
5
|
+
import { DateTime, Option } from "effect";
|
|
6
|
+
import type { RunUsageView } from "../usage.ts";
|
|
7
|
+
import { DurationSummaryView, RunStatisticsView, type StatisticsWindow } from "./view.ts";
|
|
8
|
+
/** A Worker that `usine.yaml` declares, with its `max_concurrent_attempts`. */
|
|
9
|
+
interface DeclaredWorker {
|
|
10
|
+
readonly name: WorkerName;
|
|
11
|
+
readonly slots: number;
|
|
12
|
+
}
|
|
13
|
+
/** The stored facts that `runStatisticsView` reduces. */
|
|
14
|
+
export interface RunStatisticsFacts {
|
|
15
|
+
readonly window: StatisticsWindow;
|
|
16
|
+
readonly now: DateTime.Utc;
|
|
17
|
+
/** The Runs that closed in the window and the open Runs. */
|
|
18
|
+
readonly runs: ReadonlyArray<RunSummary>;
|
|
19
|
+
/** The usage of each closed Run in `runs`. */
|
|
20
|
+
readonly usage: ReadonlyMap<RunId, RunUsageView>;
|
|
21
|
+
readonly workers: ReadonlyArray<DeclaredWorker>;
|
|
22
|
+
}
|
|
23
|
+
/** Returns the median of `durations`, or null if there are none. */
|
|
24
|
+
export declare const durationSummary: (durations: ReadonlyArray<number>) => DurationSummaryView | null;
|
|
25
|
+
/** Returns the Attempt's wall time, or `None` while it runs or if its end wasn't recorded. */
|
|
26
|
+
export declare const attemptMillis: (attempt: Attempt) => Option.Option<number>;
|
|
27
|
+
/** Whether the operator started the Attempt by retrying the failed Run, with or without an edit. */
|
|
28
|
+
export declare const operatorRetry: (attempt: Attempt | undefined) => attempt is Attempt;
|
|
29
|
+
/**
|
|
30
|
+
* Reduces the stored facts to the Run statistics of `window`. Run measures cover the Runs that
|
|
31
|
+
* closed in the window; queue wait, Worker utilization, and Needs attention also cover the open
|
|
32
|
+
* Runs.
|
|
33
|
+
*/
|
|
34
|
+
export declare const runStatisticsView: ({ window, now, runs: stored, usage, workers, }: RunStatisticsFacts) => RunStatisticsView;
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=runs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../../../src/operator/statistics/runs.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAwB,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAoB,MAAM,aAAa,CAAC;AAClE,OAAO,EAKL,mBAAmB,EAOnB,iBAAiB,EACjB,KAAK,gBAAgB,EAKtB,MAAM,WAAW,CAAC;AAgBnB,+EAA+E;AAC/E,UAAU,cAAc;IACtB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,yDAAyD;AACzD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC;IAC3B,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACzC,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACjD,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;CACjD;AAiBD,oEAAoE;AACpE,eAAO,MAAM,eAAe,cAAe,aAAa,CAAC,MAAM,CAAC,KAAG,mBAAmB,GAAG,IAKrF,CAAC;AA+BL,8FAA8F;AAC9F,eAAO,MAAM,aAAa,YAAa,OAAO,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAK9D,CAAC;AAsIR,oGAAoG;AACpG,eAAO,MAAM,aAAa,YAAa,OAAO,GAAG,SAAS,KAAG,OAAO,IAAI,OAEyB,CAAC;AAmElG;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,mDAM3B,kBAAkB,KAAG,iBA+HvB,CAAC"}
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
import { TokenCount, UsdAmount } from "@usine/core/agent/session";
|
|
2
|
+
import * as RunState from "@usine/core/run/state";
|
|
3
|
+
import { Array as EffectArray, DateTime, Option } from "effect";
|
|
4
|
+
import { AgentStatisticsView, AttemptCountView, BrainStatisticsView, CostSummaryView, DurationSummaryView, LoopStatisticsView, NeedsAttentionPeriodView, NeedsAttentionView, OutcomeCountsView, PoolTokensView, RunStatisticsView, ThroughputPeriodView, UsageSummaryView, WorkerQueueWaitView, WorkerUtilizationView, } from "./view.js";
|
|
5
|
+
import { epoch, median, periodStart, periodStarts, replacedBeforeStart, spanBucket, startOfUtcDay, sum, utcDay, windowStart, } from "./window.js";
|
|
6
|
+
const POOLS = ["apiKeys", "claudePlan", "chatgptPlan"];
|
|
7
|
+
/** Returns when a closed Run closed; the fallback only covers the nullable stored field. */
|
|
8
|
+
const closedAt = (summary) => Option.match(summary.closedAt, {
|
|
9
|
+
onSome: epoch,
|
|
10
|
+
onNone: () => {
|
|
11
|
+
const last = summary.attempts.at(-1);
|
|
12
|
+
return last === undefined
|
|
13
|
+
? epoch(summary.run.openedAt)
|
|
14
|
+
: Option.match(last.endedAt, {
|
|
15
|
+
onSome: epoch,
|
|
16
|
+
onNone: () => epoch(last.startedAt),
|
|
17
|
+
});
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
/** Returns the median of `durations`, or null if there are none. */
|
|
21
|
+
export const durationSummary = (durations) => Option.match(median(durations), {
|
|
22
|
+
onNone: () => null,
|
|
23
|
+
onSome: (middle) => new DurationSummaryView({ count: durations.length, medianMillis: Math.round(middle) }),
|
|
24
|
+
});
|
|
25
|
+
const runOutcome = (summary) => {
|
|
26
|
+
switch (summary.run.state._tag) {
|
|
27
|
+
case "Succeeded":
|
|
28
|
+
return "succeeded";
|
|
29
|
+
case "Failed":
|
|
30
|
+
return "failed";
|
|
31
|
+
case "Canceled":
|
|
32
|
+
return "canceled";
|
|
33
|
+
default:
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
const attemptOutcome = (attempt) => Option.match(attempt.outcome, {
|
|
38
|
+
onNone: () => null,
|
|
39
|
+
onSome: ({ _tag }) => _tag === "Succeeded" ? "succeeded" : _tag === "Failed" ? "failed" : "canceled",
|
|
40
|
+
});
|
|
41
|
+
const outcomeCounts = (outcomes) => new OutcomeCountsView({
|
|
42
|
+
succeeded: outcomes.filter((outcome) => outcome === "succeeded").length,
|
|
43
|
+
failed: outcomes.filter((outcome) => outcome === "failed").length,
|
|
44
|
+
canceled: outcomes.filter((outcome) => outcome === "canceled").length,
|
|
45
|
+
});
|
|
46
|
+
/** Returns the Attempt's wall time, or `None` while it runs or if its end wasn't recorded. */
|
|
47
|
+
export const attemptMillis = (attempt) => Option.isNone(attempt.outcome)
|
|
48
|
+
? Option.none()
|
|
49
|
+
: Option.map(attempt.endedAt, (endedAt) => Math.max(0, epoch(endedAt) - epoch(attempt.startedAt)));
|
|
50
|
+
const runMillis = (summary) => Math.max(0, closedAt(summary) - epoch(summary.run.openedAt));
|
|
51
|
+
/**
|
|
52
|
+
* Sums the tokens and prices of `units`, each the sessions of one Run or Attempt. A unit is priced
|
|
53
|
+
* if it has a session and each of its sessions has a price.
|
|
54
|
+
*/
|
|
55
|
+
const usageSummary = (units) => {
|
|
56
|
+
const sessions = units.flat();
|
|
57
|
+
const tokens = sum(sessions.map((session) => session.tokens));
|
|
58
|
+
const priced = units.filter((unit) => unit.length > 0 && unit.every(({ cost }) => cost !== null));
|
|
59
|
+
const usd = sum(priced.flatMap((unit) => unit.flatMap(({ cost }) => (cost === null ? [] : [cost.usd]))));
|
|
60
|
+
return new UsageSummaryView({
|
|
61
|
+
measured: units.length,
|
|
62
|
+
tokens: TokenCount.make(tokens),
|
|
63
|
+
meanTokens: units.length === 0 ? null : TokenCount.make(Math.round(tokens / units.length)),
|
|
64
|
+
pools: POOLS.flatMap((pool) => {
|
|
65
|
+
const members = sessions.filter((session) => session.pool === pool);
|
|
66
|
+
return members.length === 0
|
|
67
|
+
? []
|
|
68
|
+
: [
|
|
69
|
+
new PoolTokensView({
|
|
70
|
+
pool,
|
|
71
|
+
tokens: TokenCount.make(sum(members.map((session) => session.tokens))),
|
|
72
|
+
}),
|
|
73
|
+
];
|
|
74
|
+
}),
|
|
75
|
+
cost: priced.length === 0
|
|
76
|
+
? null
|
|
77
|
+
: new CostSummaryView({
|
|
78
|
+
usd: UsdAmount.make(usd),
|
|
79
|
+
meanUsd: UsdAmount.make(usd / priced.length),
|
|
80
|
+
estimate: priced.some((unit) => unit.some(({ cost }) => cost?.estimate === true)),
|
|
81
|
+
priced: priced.length,
|
|
82
|
+
}),
|
|
83
|
+
});
|
|
84
|
+
};
|
|
85
|
+
const runSessions = (summary, usage) => usage.get(summary.run.id)?.sessions ?? [];
|
|
86
|
+
/** Returns the closed Runs grouped by `key`, the largest group first, then by key. */
|
|
87
|
+
const groupRuns = (runs, key) => Object.values(EffectArray.groupBy(runs, (summary) => key(summary)))
|
|
88
|
+
.map((members) => [key(members[0]), members])
|
|
89
|
+
.sort(([leftName, left], [rightName, right]) => right.length - left.length || leftName.localeCompare(rightName));
|
|
90
|
+
const runGroup = (runs, usage) => ({
|
|
91
|
+
outcomes: outcomeCounts(runs.map(runOutcome)),
|
|
92
|
+
time: durationSummary(runs.map(runMillis)),
|
|
93
|
+
usage: usageSummary(runs
|
|
94
|
+
.filter(({ attempts }) => attempts.length > 0)
|
|
95
|
+
.map((summary) => runSessions(summary, usage))),
|
|
96
|
+
});
|
|
97
|
+
const brainGroups = (runs, usage) => {
|
|
98
|
+
const ended = runs.flatMap((summary) => summary.attempts
|
|
99
|
+
.filter((attempt) => Option.isSome(attempt.outcome))
|
|
100
|
+
.map((attempt) => ({
|
|
101
|
+
attempt,
|
|
102
|
+
sessions: runSessions(summary, usage).filter(({ attemptId }) => attemptId === attempt.id),
|
|
103
|
+
})));
|
|
104
|
+
const groups = EffectArray.groupBy(ended, ({ attempt: { brain } }) => JSON.stringify([brain.harness, brain.model, brain.effort]));
|
|
105
|
+
return Object.values(groups)
|
|
106
|
+
.map((members) => new BrainStatisticsView({
|
|
107
|
+
brain: members[0].attempt.brain,
|
|
108
|
+
outcomes: outcomeCounts(members.map(({ attempt }) => attemptOutcome(attempt))),
|
|
109
|
+
time: durationSummary(members.flatMap(({ attempt }) => Option.toArray(attemptMillis(attempt)))),
|
|
110
|
+
usage: usageSummary(members.map(({ sessions }) => sessions)),
|
|
111
|
+
}))
|
|
112
|
+
.sort((left, right) => right.outcomes.succeeded +
|
|
113
|
+
right.outcomes.failed +
|
|
114
|
+
right.outcomes.canceled -
|
|
115
|
+
(left.outcomes.succeeded + left.outcomes.failed + left.outcomes.canceled) ||
|
|
116
|
+
left.brain.harness.localeCompare(right.brain.harness) ||
|
|
117
|
+
left.brain.model.localeCompare(right.brain.model) ||
|
|
118
|
+
left.brain.effort.localeCompare(right.brain.effort));
|
|
119
|
+
};
|
|
120
|
+
/** Counts `instants` per period of `starts`; instants outside every period are left out. */
|
|
121
|
+
const perPeriod = (bucket, starts, instants) => {
|
|
122
|
+
const counts = new Map(starts.map((start) => [start, 0]));
|
|
123
|
+
for (const instant of instants) {
|
|
124
|
+
const start = periodStart(bucket, instant);
|
|
125
|
+
const count = counts.get(start);
|
|
126
|
+
if (count !== undefined)
|
|
127
|
+
counts.set(start, count + 1);
|
|
128
|
+
}
|
|
129
|
+
return counts;
|
|
130
|
+
};
|
|
131
|
+
const firstAttempt = (summary) => summary.attempts.reduce((first, attempt) => (first === undefined || attempt.number < first.number ? attempt : first), undefined);
|
|
132
|
+
const automaticRestart = (attempt) => attempt !== undefined &&
|
|
133
|
+
Option.exists(attempt.start, ({ _tag }) => _tag === "InfraRetry" || _tag === "AfterRestart");
|
|
134
|
+
/** Whether the operator started the Attempt by retrying the failed Run, with or without an edit. */
|
|
135
|
+
export const operatorRetry = (attempt) => attempt !== undefined &&
|
|
136
|
+
Option.exists(attempt.start, ({ _tag }) => _tag === "OperatorRetry" || _tag === "EditAndRetry");
|
|
137
|
+
/**
|
|
138
|
+
* Returns the approvals asked for and the failures raised in the window, from the Runs' openings,
|
|
139
|
+
* approvals, and Attempts.
|
|
140
|
+
*/
|
|
141
|
+
const needsAttention = (runs, from, bucket, starts) => {
|
|
142
|
+
const approvals = [];
|
|
143
|
+
const approvalWaits = [];
|
|
144
|
+
const failures = [];
|
|
145
|
+
const retryWaits = [];
|
|
146
|
+
const resolutionWaits = [];
|
|
147
|
+
for (const summary of runs) {
|
|
148
|
+
const opened = epoch(summary.run.openedAt);
|
|
149
|
+
if (opened >= from) {
|
|
150
|
+
Option.match(summary.approval, {
|
|
151
|
+
onNone: () => {
|
|
152
|
+
if (summary.run.state._tag === "Waiting")
|
|
153
|
+
approvals.push(opened);
|
|
154
|
+
},
|
|
155
|
+
onSome: ({ approvedAt }) => {
|
|
156
|
+
approvals.push(opened);
|
|
157
|
+
approvalWaits.push(Math.max(0, epoch(approvedAt) - opened));
|
|
158
|
+
},
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
const ordered = [...summary.attempts].sort((left, right) => left.number - right.number);
|
|
162
|
+
ordered.forEach((attempt, index) => {
|
|
163
|
+
const failed = Option.exists(attempt.outcome, ({ _tag }) => _tag === "Failed");
|
|
164
|
+
if (!failed || Option.isNone(attempt.endedAt))
|
|
165
|
+
return;
|
|
166
|
+
const ended = epoch(attempt.endedAt.value);
|
|
167
|
+
const next = ordered[index + 1];
|
|
168
|
+
if (ended < from || automaticRestart(next))
|
|
169
|
+
return;
|
|
170
|
+
failures.push(ended);
|
|
171
|
+
if (Option.isSome(attempt.failureResolution)) {
|
|
172
|
+
resolutionWaits.push(Math.max(0, epoch(attempt.failureResolution.value.resolvedAt) - ended));
|
|
173
|
+
}
|
|
174
|
+
else if (operatorRetry(next)) {
|
|
175
|
+
retryWaits.push(Math.max(0, epoch(next.startedAt) - ended));
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
const approvalCounts = perPeriod(bucket, starts, approvals);
|
|
180
|
+
const failureCounts = perPeriod(bucket, starts, failures);
|
|
181
|
+
return new NeedsAttentionView({
|
|
182
|
+
approvals: approvals.length,
|
|
183
|
+
failures: failures.length,
|
|
184
|
+
periods: starts.map((start) => new NeedsAttentionPeriodView({
|
|
185
|
+
start: utcDay(start),
|
|
186
|
+
approvals: approvalCounts.get(start) ?? 0,
|
|
187
|
+
failures: failureCounts.get(start) ?? 0,
|
|
188
|
+
})),
|
|
189
|
+
approvalWait: durationSummary(approvalWaits),
|
|
190
|
+
retryWait: durationSummary(retryWaits),
|
|
191
|
+
resolutionWait: durationSummary(resolutionWaits),
|
|
192
|
+
failureWait: durationSummary([...retryWaits, ...resolutionWaits]),
|
|
193
|
+
});
|
|
194
|
+
};
|
|
195
|
+
/**
|
|
196
|
+
* Reduces the stored facts to the Run statistics of `window`. Run measures cover the Runs that
|
|
197
|
+
* closed in the window; queue wait, Worker utilization, and Needs attention also cover the open
|
|
198
|
+
* Runs.
|
|
199
|
+
*/
|
|
200
|
+
export const runStatisticsView = ({ window, now, runs: stored, usage, workers, }) => {
|
|
201
|
+
const to = epoch(now);
|
|
202
|
+
const runs = stored.filter((summary) => !replacedBeforeStart(summary));
|
|
203
|
+
const from = Option.match(windowStart(window, now), {
|
|
204
|
+
onSome: epoch,
|
|
205
|
+
onNone: () => startOfUtcDay(runs.reduce((earliest, { run, attempts }) => attempts.reduce((first, { startedAt }) => Math.min(first, epoch(startedAt)), Math.min(earliest, epoch(run.openedAt))), to)),
|
|
206
|
+
});
|
|
207
|
+
const closed = runs.filter(({ run }) => !RunState.isOpen(run.state));
|
|
208
|
+
const bucket = spanBucket(from, to);
|
|
209
|
+
const starts = periodStarts(bucket, from, to);
|
|
210
|
+
const throughputCounts = new Map(starts.map((start) => [start, { succeeded: 0, failed: 0, canceled: 0 }]));
|
|
211
|
+
for (const summary of closed) {
|
|
212
|
+
const outcome = runOutcome(summary);
|
|
213
|
+
const period = throughputCounts.get(periodStart(bucket, closedAt(summary)));
|
|
214
|
+
if (outcome !== null && period !== undefined)
|
|
215
|
+
period[outcome] += 1;
|
|
216
|
+
}
|
|
217
|
+
const ended = closed.flatMap(({ attempts }) => attempts.filter(({ outcome }) => Option.isSome(outcome)));
|
|
218
|
+
const waits = new Map();
|
|
219
|
+
for (const summary of runs) {
|
|
220
|
+
const first = firstAttempt(summary);
|
|
221
|
+
if (first === undefined || epoch(first.startedAt) < from)
|
|
222
|
+
continue;
|
|
223
|
+
const ready = Math.max(epoch(summary.run.openedAt), Option.match(summary.approval, {
|
|
224
|
+
onNone: () => 0,
|
|
225
|
+
onSome: ({ approvedAt }) => epoch(approvedAt),
|
|
226
|
+
}));
|
|
227
|
+
const worker = waits.get(first.worker) ?? [];
|
|
228
|
+
worker.push(Math.max(0, epoch(first.startedAt) - ready));
|
|
229
|
+
waits.set(first.worker, worker);
|
|
230
|
+
}
|
|
231
|
+
const attemptCounts = closed.flatMap(({ attempts }) => attempts.length === 0 ? [] : [attempts.length]);
|
|
232
|
+
const mostAttempts = attemptCounts.reduce((most, count) => Math.max(most, count), 0);
|
|
233
|
+
const windowMillis = Math.max(0, to - from);
|
|
234
|
+
const occupied = (worker) => sum(runs.flatMap(({ attempts }) => attempts
|
|
235
|
+
.filter((attempt) => attempt.worker === worker)
|
|
236
|
+
.flatMap((attempt) => {
|
|
237
|
+
const end = Option.isNone(attempt.outcome)
|
|
238
|
+
? Option.some(to)
|
|
239
|
+
: Option.map(attempt.endedAt, epoch);
|
|
240
|
+
return Option.toArray(Option.map(end, (until) => Math.max(0, Math.min(until, to) - Math.max(epoch(attempt.startedAt), from))));
|
|
241
|
+
})));
|
|
242
|
+
return new RunStatisticsView({
|
|
243
|
+
window,
|
|
244
|
+
from: new Date(from).toISOString(),
|
|
245
|
+
to: DateTime.formatIso(now),
|
|
246
|
+
bucket,
|
|
247
|
+
runs: outcomeCounts(closed.map(runOutcome)),
|
|
248
|
+
runTime: durationSummary(closed.map(runMillis)),
|
|
249
|
+
attemptTime: durationSummary(ended.flatMap((attempt) => Option.toArray(attemptMillis(attempt)))),
|
|
250
|
+
unmeasuredAttempts: ended.filter(({ endedAt }) => Option.isNone(endedAt)).length,
|
|
251
|
+
throughput: starts.map((start) => new ThroughputPeriodView({
|
|
252
|
+
start: utcDay(start),
|
|
253
|
+
...(throughputCounts.get(start) ?? { succeeded: 0, failed: 0, canceled: 0 }),
|
|
254
|
+
})),
|
|
255
|
+
loops: groupRuns(closed, ({ run }) => run.loop).map(([loop, members]) => new LoopStatisticsView({ loop, ...runGroup(members, usage) })),
|
|
256
|
+
agents: groupRuns(closed, ({ agent }) => agent.name).map(([agent, members]) => new AgentStatisticsView({ agent, ...runGroup(members, usage) })),
|
|
257
|
+
brains: brainGroups(closed, usage),
|
|
258
|
+
queueWait: [...waits.entries()]
|
|
259
|
+
.sort(([left], [right]) => left.localeCompare(right))
|
|
260
|
+
.flatMap(([worker, durations]) => {
|
|
261
|
+
const wait = durationSummary(durations);
|
|
262
|
+
return wait === null ? [] : [new WorkerQueueWaitView({ worker, wait })];
|
|
263
|
+
}),
|
|
264
|
+
attemptsPerRun: Array.from({ length: mostAttempts }, (_, index) => new AttemptCountView({
|
|
265
|
+
attempts: index + 1,
|
|
266
|
+
runs: attemptCounts.filter((count) => count === index + 1).length,
|
|
267
|
+
})),
|
|
268
|
+
utilization: workers.flatMap(({ name, slots }) => {
|
|
269
|
+
if (slots < 1)
|
|
270
|
+
return [];
|
|
271
|
+
const held = occupied(name);
|
|
272
|
+
return [
|
|
273
|
+
new WorkerUtilizationView({
|
|
274
|
+
worker: name,
|
|
275
|
+
slots,
|
|
276
|
+
occupiedMillis: Math.round(held),
|
|
277
|
+
share: windowMillis === 0 ? 0 : Math.min(1, held / (slots * windowMillis)),
|
|
278
|
+
}),
|
|
279
|
+
];
|
|
280
|
+
}),
|
|
281
|
+
needsAttention: needsAttention(runs, from, bucket, starts),
|
|
282
|
+
});
|
|
283
|
+
};
|
|
284
|
+
//# sourceMappingURL=runs.js.map
|