@usine/engine 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +661 -21
- package/README.md +112 -38
- package/dist/board-moves/board-moves.d.ts +20 -0
- package/dist/board-moves/board-moves.d.ts.map +1 -0
- package/dist/board-moves/board-moves.js +74 -0
- package/dist/board-moves/board-moves.js.map +1 -0
- package/dist/board-moves/model.d.ts +21 -0
- package/dist/board-moves/model.d.ts.map +1 -0
- package/dist/board-moves/model.js +22 -0
- package/dist/board-moves/model.js.map +1 -0
- package/dist/cursor/cursor.d.ts +2 -6
- package/dist/cursor/cursor.d.ts.map +1 -1
- package/dist/cursor/cursor.js +2 -6
- package/dist/cursor/cursor.js.map +1 -1
- package/dist/cycle-budget/cycle-budget.d.ts +14 -8
- package/dist/cycle-budget/cycle-budget.d.ts.map +1 -1
- package/dist/cycle-budget/cycle-budget.js +51 -10
- package/dist/cycle-budget/cycle-budget.js.map +1 -1
- package/dist/cycle-budget/model.d.ts +6 -2
- package/dist/cycle-budget/model.d.ts.map +1 -1
- package/dist/cycle-budget/model.js +5 -2
- package/dist/cycle-budget/model.js.map +1 -1
- package/dist/cycle-budget/queries.d.ts +1 -1
- package/dist/cycle-budget/queries.d.ts.map +1 -1
- package/dist/cycle-budget/queries.js +3 -3
- package/dist/cycle-budget/queries.js.map +1 -1
- package/dist/database/database.d.ts +1 -1
- package/dist/database/database.d.ts.map +1 -1
- package/dist/database/local-sqlite.d.ts +13 -10
- package/dist/database/local-sqlite.d.ts.map +1 -1
- package/dist/database/local-sqlite.js +22 -17
- package/dist/database/local-sqlite.js.map +1 -1
- package/dist/database/schema.d.ts +668 -36
- package/dist/database/schema.d.ts.map +1 -1
- package/dist/database/schema.js +123 -23
- package/dist/database/schema.js.map +1 -1
- package/dist/{workflow → engine}/admission.d.ts +2 -2
- package/dist/engine/admission.d.ts.map +1 -0
- package/dist/{workflow → engine}/admission.js +4 -4
- package/dist/engine/admission.js.map +1 -0
- package/dist/engine/checkout-recovery.d.ts +79 -0
- package/dist/engine/checkout-recovery.d.ts.map +1 -0
- package/dist/engine/checkout-recovery.js +238 -0
- package/dist/engine/checkout-recovery.js.map +1 -0
- package/dist/engine/engine.d.ts +67 -26
- package/dist/engine/engine.d.ts.map +1 -1
- package/dist/engine/engine.js +136 -129
- package/dist/engine/engine.js.map +1 -1
- package/dist/engine/error.d.ts +29 -10
- package/dist/engine/error.d.ts.map +1 -1
- package/dist/engine/error.js +28 -8
- package/dist/engine/error.js.map +1 -1
- package/dist/engine/lifecycle.d.ts +83 -28
- package/dist/engine/lifecycle.d.ts.map +1 -1
- package/dist/engine/lifecycle.js +94 -45
- package/dist/engine/lifecycle.js.map +1 -1
- package/dist/engine/retry.d.ts +16 -0
- package/dist/engine/retry.d.ts.map +1 -0
- package/dist/engine/retry.js +18 -0
- package/dist/engine/retry.js.map +1 -0
- package/dist/engine/run-again.d.ts +45 -0
- package/dist/engine/run-again.d.ts.map +1 -0
- package/dist/engine/run-again.js +56 -0
- package/dist/engine/run-again.js.map +1 -0
- package/dist/engine/run-driver.d.ts +68 -0
- package/dist/engine/run-driver.d.ts.map +1 -0
- package/dist/engine/run-driver.js +448 -0
- package/dist/engine/run-driver.js.map +1 -0
- package/dist/engine/shutdown.d.ts +3 -4
- package/dist/engine/shutdown.d.ts.map +1 -1
- package/dist/engine/shutdown.js +3 -4
- package/dist/engine/shutdown.js.map +1 -1
- package/dist/engine/submission.d.ts +31 -11
- package/dist/engine/submission.d.ts.map +1 -1
- package/dist/engine/submission.js +43 -12
- package/dist/engine/submission.js.map +1 -1
- package/dist/engine/unconfirmed-stops.d.ts +27 -0
- package/dist/engine/unconfirmed-stops.d.ts.map +1 -0
- package/dist/engine/unconfirmed-stops.js +26 -0
- package/dist/engine/unconfirmed-stops.js.map +1 -0
- package/dist/item-projection/item-projection.d.ts +14 -4
- package/dist/item-projection/item-projection.d.ts.map +1 -1
- package/dist/item-projection/item-projection.js +60 -14
- package/dist/item-projection/item-projection.js.map +1 -1
- package/dist/item-projection/model.d.ts +5 -1
- package/dist/item-projection/model.d.ts.map +1 -1
- package/dist/item-projection/model.js +6 -2
- package/dist/item-projection/model.js.map +1 -1
- package/dist/loop-control/loop-control.d.ts +5 -5
- package/dist/loop-control/loop-control.d.ts.map +1 -1
- package/dist/loop-control/loop-control.js +4 -4
- package/dist/loop-control/loop-control.js.map +1 -1
- package/dist/loop-control/model.d.ts +1 -1
- package/dist/loop-control/model.d.ts.map +1 -1
- package/dist/loop-control/model.js +1 -1
- package/dist/loop-control/model.js.map +1 -1
- package/dist/repository-label-projection/model.d.ts +2 -2
- package/dist/repository-label-projection/model.d.ts.map +1 -1
- package/dist/repository-label-projection/model.js +2 -2
- package/dist/repository-label-projection/model.js.map +1 -1
- package/dist/repository-label-projection/repository-label-projection.d.ts +1 -1
- package/dist/repository-label-projection/repository-label-projection.d.ts.map +1 -1
- package/dist/repository-label-projection/repository-label-projection.js +1 -1
- package/dist/repository-label-projection/repository-label-projection.js.map +1 -1
- package/dist/run-reader/model.d.ts +62 -4
- package/dist/run-reader/model.d.ts.map +1 -1
- package/dist/run-reader/model.js +66 -7
- package/dist/run-reader/model.js.map +1 -1
- package/dist/run-reader/run-reader.d.ts +25 -10
- package/dist/run-reader/run-reader.d.ts.map +1 -1
- package/dist/run-reader/run-reader.js +25 -7
- package/dist/run-reader/run-reader.js.map +1 -1
- package/dist/step-executor.d.ts +86 -13
- package/dist/step-executor.d.ts.map +1 -1
- package/dist/step-executor.js +10 -2
- package/dist/step-executor.js.map +1 -1
- package/dist/store/attempt-windows.d.ts +8 -0
- package/dist/store/attempt-windows.d.ts.map +1 -0
- package/dist/store/attempt-windows.js +53 -0
- package/dist/store/attempt-windows.js.map +1 -0
- package/dist/store/codec.d.ts +242 -43
- package/dist/store/codec.d.ts.map +1 -1
- package/dist/store/codec.js +61 -16
- package/dist/store/codec.js.map +1 -1
- package/dist/store/leftovers.d.ts +10 -0
- package/dist/store/leftovers.d.ts.map +1 -0
- package/dist/store/leftovers.js +43 -0
- package/dist/store/leftovers.js.map +1 -0
- package/dist/store/loop-items.d.ts +16 -0
- package/dist/store/loop-items.d.ts.map +1 -0
- package/dist/store/loop-items.js +185 -0
- package/dist/store/loop-items.js.map +1 -0
- package/dist/store/queries.d.ts +385 -36
- package/dist/store/queries.d.ts.map +1 -1
- package/dist/store/queries.js +355 -107
- package/dist/store/queries.js.map +1 -1
- package/dist/store/store.d.ts +106 -54
- package/dist/store/store.d.ts.map +1 -1
- package/dist/store/store.js +497 -190
- package/dist/store/store.js.map +1 -1
- package/dist/store/transcript.d.ts +3 -3
- package/dist/store/transcript.d.ts.map +1 -1
- package/dist/store/transcript.js +25 -6
- package/dist/store/transcript.js.map +1 -1
- package/dist/transcript.d.ts +19 -20
- package/dist/transcript.d.ts.map +1 -1
- package/dist/transcript.js +23 -21
- package/dist/transcript.js.map +1 -1
- package/dist/trigger-condition.d.ts +23 -0
- package/dist/trigger-condition.d.ts.map +1 -0
- package/dist/trigger-condition.js +8 -0
- package/dist/trigger-condition.js.map +1 -0
- package/drizzle/20260917071139_resolve_run_failure/migration.sql +1 -0
- package/drizzle/20260917071139_resolve_run_failure/snapshot.json +1471 -0
- package/drizzle/20260918032643_attempt_salvage/migration.sql +1 -0
- package/drizzle/20260918032643_attempt_salvage/snapshot.json +1481 -0
- package/drizzle/20261011153856_drop_workflow_tables/migration.sql +4 -0
- package/drizzle/20261011153856_drop_workflow_tables/snapshot.json +1433 -0
- package/drizzle/20261017155043_attempt_salvage_check/migration.sql +41 -0
- package/drizzle/20261017155043_attempt_salvage_check/snapshot.json +1421 -0
- package/drizzle/20261018162700_discard_attempt_leftovers/migration.sql +1 -0
- package/drizzle/20261018162700_discard_attempt_leftovers/snapshot.json +1431 -0
- package/drizzle/20261018172605_loop_items_and_reopenings/migration.sql +15 -0
- package/drizzle/20261018172605_loop_items_and_reopenings/snapshot.json +1574 -0
- package/drizzle/20261018180339_attempt_ended_at/migration.sql +1 -0
- package/drizzle/20261018180339_attempt_ended_at/snapshot.json +1584 -0
- package/drizzle/20261019104043_run_approval_source/migration.sql +15 -0
- package/drizzle/20261019104043_run_approval_source/snapshot.json +1610 -0
- package/drizzle/20261019133538_board_moves/migration.sql +14 -0
- package/drizzle/20261019133538_board_moves/snapshot.json +1731 -0
- package/drizzle/20261019170538_item_projection_gone/migration.sql +1 -0
- package/drizzle/20261019170538_item_projection_gone/snapshot.json +1741 -0
- package/drizzle/20261019180649_run_again_events/migration.sql +7 -0
- package/drizzle/20261019180649_run_again_events/snapshot.json +1804 -0
- package/drizzle/20261019185008_trigger_event_permissions/migration.sql +1 -0
- package/drizzle/20261019185008_trigger_event_permissions/snapshot.json +1814 -0
- package/drizzle/20261020103746_attempt_start/migration.sql +5 -0
- package/drizzle/20261020103746_attempt_start/snapshot.json +1844 -0
- package/drizzle/20261020125211_attempt_comments/migration.sql +1 -0
- package/drizzle/20261020125211_attempt_comments/snapshot.json +1854 -0
- package/drizzle/20261020191320_run_closed_at/migration.sql +6 -0
- package/drizzle/20261020191320_run_closed_at/snapshot.json +1864 -0
- package/drizzle/20261023091428_rename_loop_item_hold_to_suppression/migration.sql +2 -0
- package/drizzle/20261023091428_rename_loop_item_hold_to_suppression/snapshot.json +1867 -0
- package/drizzle/20261024162954_cycle_ask_closures/migration.sql +10 -0
- package/drizzle/20261024162954_cycle_ask_closures/snapshot.json +1948 -0
- package/drizzle/20261027104206_attempt_out_of_memory/migration.sql +1 -0
- package/drizzle/20261027104206_attempt_out_of_memory/snapshot.json +1958 -0
- package/drizzle/20261027191944_failure_resolution/migration.sql +1 -0
- package/drizzle/20261027191944_failure_resolution/snapshot.json +1968 -0
- package/package.json +22 -12
- package/dist/workflow/admission.d.ts.map +0 -1
- package/dist/workflow/admission.js.map +0 -1
- package/dist/workflow/command.d.ts +0 -13
- package/dist/workflow/command.d.ts.map +0 -1
- package/dist/workflow/command.js +0 -17
- package/dist/workflow/command.js.map +0 -1
- package/dist/workflow/workflow.d.ts +0 -18
- package/dist/workflow/workflow.d.ts.map +0 -1
- package/dist/workflow/workflow.js +0 -108
- package/dist/workflow/workflow.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-control.js","sourceRoot":"","sources":["../../src/loop-control/loop-control.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"loop-control.js","sourceRoot":"","sources":["../../src/loop-control/loop-control.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ declare const LoopRuntimeState_base: Schema.Class<LoopRuntimeState, Schema.Struc
|
|
|
3
3
|
readonly loop: Schema.brand<Schema.NonEmptyString, "LoopName">;
|
|
4
4
|
readonly paused: Schema.Boolean;
|
|
5
5
|
}>, {}>;
|
|
6
|
-
/**
|
|
6
|
+
/** The runtime state of a Loop, not stored in Loop files. */
|
|
7
7
|
export declare class LoopRuntimeState extends LoopRuntimeState_base {
|
|
8
8
|
}
|
|
9
9
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/loop-control/model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;;;;;AAEhC
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/loop-control/model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;;;;;AAEhC,6DAA6D;AAC7D,qBAAa,gBAAiB,SAAQ,qBAKpC;CAAG"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { LoopName } from "@usine/core/loop";
|
|
2
2
|
import { Schema } from "effect";
|
|
3
|
-
/**
|
|
3
|
+
/** The runtime state of a Loop, not stored in Loop files. */
|
|
4
4
|
export class LoopRuntimeState extends Schema.Class("@usine/engine/LoopRuntimeState")({
|
|
5
5
|
loop: LoopName,
|
|
6
6
|
paused: Schema.Boolean,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/loop-control/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/loop-control/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,6DAA6D;AAC7D,MAAM,OAAO,gBAAiB,SAAQ,MAAM,CAAC,KAAK,CAChD,gCAAgC,CACjC,CAAC;IACA,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,MAAM,CAAC,OAAO;CACvB,CAAC;CAAG"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Schema } from "effect";
|
|
2
|
-
/**
|
|
2
|
+
/** A label color as six hex digits, absent in older catalogs. */
|
|
3
3
|
export declare const RepositoryLabelColor: Schema.String;
|
|
4
4
|
declare const RepositoryLabel_base: Schema.Class<RepositoryLabel, Schema.Struct<{
|
|
5
5
|
readonly name: Schema.String;
|
|
@@ -12,7 +12,7 @@ declare const RepositoryLabelProjection_base: Schema.Class<RepositoryLabelProjec
|
|
|
12
12
|
readonly repository: Schema.brand<Schema.String, "RepositoryName">;
|
|
13
13
|
readonly labels: Schema.$Array<typeof RepositoryLabel>;
|
|
14
14
|
}>, {}>;
|
|
15
|
-
/** The latest complete label catalog polling observed for
|
|
15
|
+
/** The latest complete label catalog that polling observed for a repository. */
|
|
16
16
|
export declare class RepositoryLabelProjection extends RepositoryLabelProjection_base {
|
|
17
17
|
}
|
|
18
18
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/repository-label-projection/model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAMhC,
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/repository-label-projection/model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAMhC,iEAAiE;AACjE,eAAO,MAAM,oBAAoB,eAEhC,CAAC;;;;;;AAEF,qBAAa,eAAgB,SAAQ,oBAMpC;CAAG;;;;;AAQJ,gFAAgF;AAChF,qBAAa,yBAA0B,SAAQ,8BAK7C;CAAG"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { RepositoryName } from "@usine/core/repository";
|
|
2
2
|
import { Schema } from "effect";
|
|
3
3
|
const RepositoryLabelName = Schema.String.check(Schema.isPattern(/\S/u, { message: "Expected a non-blank repository label" }));
|
|
4
|
-
/**
|
|
4
|
+
/** A label color as six hex digits, absent in older catalogs. */
|
|
5
5
|
export const RepositoryLabelColor = Schema.String.check(Schema.isPattern(/^[0-9a-fA-F]{6}$/u, { message: "Expected a six-digit hex label color" }));
|
|
6
6
|
export class RepositoryLabel extends Schema.Class("@usine/engine/RepositoryLabel")({
|
|
7
7
|
name: RepositoryLabelName,
|
|
@@ -11,7 +11,7 @@ export class RepositoryLabel extends Schema.Class("@usine/engine/RepositoryLabel
|
|
|
11
11
|
}
|
|
12
12
|
const uniqueLabelNames = Schema.makeFilter((labels) => new Set(labels.map(({ name }) => name)).size === labels.length, { message: "Expected unique label names" });
|
|
13
13
|
const RepositoryLabels = Schema.Array(RepositoryLabel).check(uniqueLabelNames);
|
|
14
|
-
/** The latest complete label catalog polling observed for
|
|
14
|
+
/** The latest complete label catalog that polling observed for a repository. */
|
|
15
15
|
export class RepositoryLabelProjection extends Schema.Class("@usine/engine/RepositoryLabelProjection")({
|
|
16
16
|
repository: RepositoryName,
|
|
17
17
|
labels: RepositoryLabels,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/repository-label-projection/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAC7C,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,uCAAuC,EAAE,CAAC,CAC9E,CAAC;AAEF,
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/repository-label-projection/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAC7C,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,uCAAuC,EAAE,CAAC,CAC9E,CAAC;AAEF,iEAAiE;AACjE,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CACrD,MAAM,CAAC,SAAS,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC,CAC3F,CAAC;AAEF,MAAM,OAAO,eAAgB,SAAQ,MAAM,CAAC,KAAK,CAAkB,+BAA+B,CAAC,CACjG;IACE,IAAI,EAAE,mBAAmB;IACzB,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,CAAC;IACpD,WAAW,EAAE,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC;CACpD,CACF;CAAG;AAEJ,MAAM,gBAAgB,GAAG,MAAM,CAAC,UAAU,CACxC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,EAC1E,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAC3C,CAAC;AACF,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;AAE/E,gFAAgF;AAChF,MAAM,OAAO,yBAA0B,SAAQ,MAAM,CAAC,KAAK,CACzD,yCAAyC,CAC1C,CAAC;IACA,UAAU,EAAE,cAAc;IAC1B,MAAM,EAAE,gBAAgB;CACzB,CAAC;CAAG"}
|
|
@@ -10,7 +10,7 @@ export declare class RepositoryLabelProjectionReader extends RepositoryLabelProj
|
|
|
10
10
|
static readonly layer: Layer.Layer<RepositoryLabelProjectionReader, never, RunDatabase>;
|
|
11
11
|
}
|
|
12
12
|
declare const RepositoryLabelProjectionWriter_base: Context.ServiceClass<RepositoryLabelProjectionWriter, "@usine/engine/RepositoryLabelProjectionWriter", {
|
|
13
|
-
/**
|
|
13
|
+
/** Replaces the stored catalog and returns whether it changed. */
|
|
14
14
|
readonly replace: (projection: RepositoryLabelProjection) => Effect.Effect<boolean, EnginePersistenceError>;
|
|
15
15
|
}>;
|
|
16
16
|
export declare class RepositoryLabelProjectionWriter extends RepositoryLabelProjectionWriter_base {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository-label-projection.d.ts","sourceRoot":"","sources":["../../src/repository-label-projection/repository-label-projection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAmB,yBAAyB,EAAE,MAAM,YAAY,CAAC;;kBA0FtD,CACZ,UAAU,EAAE,cAAc,KACvB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC,EAAE,sBAAsB,CAAC;;AALxF,qBAAa,+BAAgC,SAAQ,oCAOD;IAClD,MAAM,CAAC,QAAQ,CAAC,KAAK,mEAA6D;CACnF;;IAKG,
|
|
1
|
+
{"version":3,"file":"repository-label-projection.d.ts","sourceRoot":"","sources":["../../src/repository-label-projection/repository-label-projection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAmB,yBAAyB,EAAE,MAAM,YAAY,CAAC;;kBA0FtD,CACZ,UAAU,EAAE,cAAc,KACvB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC,EAAE,sBAAsB,CAAC;;AALxF,qBAAa,+BAAgC,SAAQ,oCAOD;IAClD,MAAM,CAAC,QAAQ,CAAC,KAAK,mEAA6D;CACnF;;IAKG,kEAAkE;sBAChD,CAChB,UAAU,EAAE,yBAAyB,KAClC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,sBAAsB,CAAC;;AANvD,qBAAa,+BAAgC,SAAQ,oCAQD;IAClD,MAAM,CAAC,QAAQ,CAAC,KAAK,mEAA6D;CACnF;AAED,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -5,7 +5,7 @@ import { RunDatabase } from "../database/database.js";
|
|
|
5
5
|
import { repositoryLabelProjections } from "../database/schema.js";
|
|
6
6
|
import { EnginePersistenceError } from "../engine/error.js";
|
|
7
7
|
import { RepositoryLabel, RepositoryLabelProjection } from "./model.js";
|
|
8
|
-
/**
|
|
8
|
+
/** Older rows store bare names, read as labels without a color. */
|
|
9
9
|
const LegacyLabelNames = Schema.Array(Schema.String);
|
|
10
10
|
const isLegacyLabelNames = Schema.is(LegacyLabelNames);
|
|
11
11
|
const RepositoryLabelProjectionRow = Schema.Struct({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository-label-projection.js","sourceRoot":"","sources":["../../src/repository-label-projection/repository-label-projection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAExE,
|
|
1
|
+
{"version":3,"file":"repository-label-projection.js","sourceRoot":"","sources":["../../src/repository-label-projection/repository-label-projection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAExE,mEAAmE;AACnE,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACrD,MAAM,kBAAkB,GAAG,MAAM,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;AACvD,MAAM,4BAA4B,GAAG,MAAM,CAAC,MAAM,CAAC;IACjD,UAAU,EAAE,cAAc;IAC1B,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,yBAAyB,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAClF,CAAC,CAAC;AACH,MAAM,YAAY,GAAG,CACnB,MAA4D,EAC5B,EAAE,CAClC,kBAAkB,CAAC,MAAM,CAAC;IACxB,CAAC,CAAC,MAAM,CAAC,GAAG,CACR,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAC1F;IACH,CAAC,CAAC,MAAM,CAAC;AAEb,MAAM,UAAU,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;AAC1F,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,yBAAyB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAEhF,MAAM,WAAW,GACf,CAAC,SAAiB,EAAE,EAAE,CACtB,CAAU,MAA8B,EAA+C,EAAE,CACvF,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,sBAAsB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AAEzF,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC;IACpC,OAAO;QACL,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,qCAAqC,CAAC,CAAC,QAAQ,CAAC,EAAE,UAA0B;YACzF,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,QAAQ;iBACzB,MAAM,CAAC;gBACN,UAAU,EAAE,0BAA0B,CAAC,UAAU;gBACjD,MAAM,EAAE,0BAA0B,CAAC,UAAU;aAC9C,CAAC;iBACD,IAAI,CAAC,0BAA0B,CAAC;iBAChC,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;iBAC5D,KAAK,CAAC,CAAC,CAAC;iBACR,OAAO,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,CAAC;YACvE,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACvB,OAAO,GAAG,KAAK,SAAS;gBACtB,CAAC,CAAC,MAAM,CAAC,IAAI,EAA6B;gBAC1C,CAAC,CAAC,MAAM,CAAC,IAAI,CACT,IAAI,yBAAyB,CAAC;oBAC5B,UAAU,EAAE,GAAG,CAAC,UAAU;oBAC1B,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC;iBACjC,CAAC,CACH,CAAC;QACR,CAAC,EAAE,WAAW,CAAC,kCAAkC,CAAC,CAAC;KAC3C,CAAC;AACb,CAAC,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC;IACpC,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,yCAAyC,CAAC,CAAC,QAAQ,CAAC,EACrE,UAAqC;YAErC,KAAK,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;YACzE,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACnD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,QAAQ;iBAC5B,MAAM,CAAC,0BAA0B,CAAC;iBAClC,MAAM,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC;iBACzD,kBAAkB,CAAC;gBAClB,MAAM,EAAE,0BAA0B,CAAC,UAAU;gBAC7C,GAAG,EAAE,EAAE,UAAU,EAAE;gBACnB,QAAQ,EAAE,EAAE,CAAC,0BAA0B,CAAC,UAAU,EAAE,UAAU,CAAC;aAChE,CAAC;iBACD,SAAS,CAAC,EAAE,UAAU,EAAE,0BAA0B,CAAC,UAAU,EAAE,CAAC;iBAChE,OAAO,EAAE,CAAC;YACb,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,oDAAoD,EAAE;oBAC3E,UAAU,EAAE,UAAU,CAAC,UAAU;oBACjC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM;iBACjC,CAAC,CAAC;gBACH,OAAO,KAAK,CAAC;YACf,CAAC;YACD,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,0DAA0D,EAAE;gBACjF,UAAU,EAAE,UAAU,CAAC,UAAU;gBACjC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM;aACjC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC,EAAE,WAAW,CAAC,mCAAmC,CAAC,CAAC;KAC5C,CAAC;AACb,CAAC,CAAC,CAAC;AAEH,MAAM,OAAO,+BAAgC,SAAQ,OAAO,CAAC,OAAO,EAOjE,CAAC,+CAA+C,CAAC;IAClD,MAAM,CAAU,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,+BAA+B,EAAE,UAAU,CAAC,CAAC;CACnF;AAED,MAAM,OAAO,+BAAgC,SAAQ,OAAO,CAAC,OAAO,EAQjE,CAAC,+CAA+C,CAAC;IAClD,MAAM,CAAU,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,+BAA+B,EAAE,UAAU,CAAC,CAAC;CACnF;AAED,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -2,6 +2,8 @@ import { Agent } from "@usine/core/agent";
|
|
|
2
2
|
import { Attempt } from "@usine/core/attempt";
|
|
3
3
|
import { Event } from "@usine/core/event";
|
|
4
4
|
import { Run } from "@usine/core/run";
|
|
5
|
+
import { RunAgain } from "@usine/core/run/again";
|
|
6
|
+
import { RunApproval } from "@usine/core/run/approval";
|
|
5
7
|
import { Step } from "@usine/core/step";
|
|
6
8
|
import { Schema } from "effect";
|
|
7
9
|
import { TranscriptEntry } from "../transcript.ts";
|
|
@@ -11,20 +13,40 @@ declare const RunSnapshot_base: Schema.Class<RunSnapshot, Schema.Struct<{
|
|
|
11
13
|
readonly run: typeof Run;
|
|
12
14
|
readonly step: typeof Step;
|
|
13
15
|
readonly attempts: Schema.$Array<typeof Attempt>;
|
|
16
|
+
/** The failed Attempt that the operator marked as resolved; its outcome is unchanged. */
|
|
17
|
+
readonly resolvedFailureAttemptId: Schema.Option<Schema.brand<Schema.NonEmptyString, "AttemptId">>;
|
|
18
|
+
/**
|
|
19
|
+
* The time the Run last closed, or `None` while open. For older Runs, the last Attempt's end or
|
|
20
|
+
* start, or the Run's open time.
|
|
21
|
+
*/
|
|
22
|
+
readonly closedAt: Schema.Option<Schema.DateTimeUtc>;
|
|
23
|
+
/** The approval the Run consumed, or `None` before approval and for Loops with `approval: none`. */
|
|
24
|
+
readonly approval: Schema.Option<typeof RunApproval>;
|
|
25
|
+
/** The run-again origin, or `None` for a Run opened by its trigger. */
|
|
26
|
+
readonly runAgain: Schema.Option<typeof RunAgain>;
|
|
14
27
|
readonly repository: Schema.brand<Schema.String, "RepositoryName">;
|
|
15
28
|
readonly revision: Schema.brand<Schema.String, "RepositoryRevision">;
|
|
16
29
|
readonly task: Schema.brand<Schema.String, "AttemptTask">;
|
|
17
30
|
readonly agent: typeof Agent;
|
|
18
31
|
readonly parentModel: Schema.Option<Schema.brand<Schema.String, "ModelId">>;
|
|
32
|
+
/** The repository access of the Run's Attempts, from the Loop at match time. */
|
|
33
|
+
readonly permissions: Schema.Literals<readonly ["write", "read"]>;
|
|
19
34
|
}>, {}>;
|
|
20
|
-
/** The full durable view of
|
|
35
|
+
/** The full durable view of a Run. */
|
|
21
36
|
export declare class RunSnapshot extends RunSnapshot_base {
|
|
22
37
|
}
|
|
38
|
+
declare const RunEvent_base: Schema.Class<RunEvent, Schema.Struct<{
|
|
39
|
+
readonly runId: Schema.brand<Schema.NonEmptyString, "RunId">;
|
|
40
|
+
readonly event: typeof Event;
|
|
41
|
+
}>, {}>;
|
|
42
|
+
/** A Run and the Event it was opened for; the payload is the Item as the trigger saw it. */
|
|
43
|
+
export declare class RunEvent extends RunEvent_base {
|
|
44
|
+
}
|
|
23
45
|
declare const RunEvidence_base: Schema.Class<RunEvidence, Schema.Struct<{
|
|
24
46
|
readonly snapshot: typeof RunSnapshot;
|
|
25
47
|
readonly transcript: Schema.$Array<typeof TranscriptEntry>;
|
|
26
48
|
}>, {}>;
|
|
27
|
-
/** A Run snapshot and all its
|
|
49
|
+
/** A Run snapshot and all its transcript entries, read in one transaction. */
|
|
28
50
|
export declare class RunEvidence extends RunEvidence_base {
|
|
29
51
|
}
|
|
30
52
|
declare const RunSummary_base: Schema.Class<RunSummary, Schema.Struct<{
|
|
@@ -32,14 +54,50 @@ declare const RunSummary_base: Schema.Class<RunSummary, Schema.Struct<{
|
|
|
32
54
|
readonly run: typeof Run;
|
|
33
55
|
readonly step: typeof Step;
|
|
34
56
|
readonly attempts: Schema.$Array<typeof Attempt>;
|
|
57
|
+
/** The failed Attempt that the operator marked as resolved; its outcome is unchanged. */
|
|
58
|
+
readonly resolvedFailureAttemptId: Schema.Option<Schema.brand<Schema.NonEmptyString, "AttemptId">>;
|
|
59
|
+
/**
|
|
60
|
+
* The time the Run last closed, or `None` while open. For older Runs, the last Attempt's end or
|
|
61
|
+
* start, or the Run's open time.
|
|
62
|
+
*/
|
|
63
|
+
readonly closedAt: Schema.Option<Schema.DateTimeUtc>;
|
|
64
|
+
/** The approval the Run consumed, or `None` before approval and for Loops with `approval: none`. */
|
|
65
|
+
readonly approval: Schema.Option<typeof RunApproval>;
|
|
66
|
+
/** The run-again origin, or `None` for a Run opened by its trigger. */
|
|
67
|
+
readonly runAgain: Schema.Option<typeof RunAgain>;
|
|
35
68
|
readonly repository: Schema.brand<Schema.String, "RepositoryName">;
|
|
36
69
|
readonly task: Schema.brand<Schema.String, "AttemptTask">;
|
|
37
70
|
readonly agent: typeof Agent;
|
|
38
71
|
}>, {}>;
|
|
39
|
-
/** The
|
|
72
|
+
/** The Run view used in operator Run lists. */
|
|
40
73
|
export declare class RunSummary extends RunSummary_base {
|
|
41
74
|
}
|
|
42
|
-
|
|
75
|
+
declare const WorkerAttempts_base: Schema.Class<WorkerAttempts, Schema.Struct<{
|
|
76
|
+
readonly worker: Schema.brand<Schema.String, "WorkerName">;
|
|
77
|
+
readonly attempts: Schema.Int;
|
|
78
|
+
/** The number of `attempts` without a recorded outcome. */
|
|
79
|
+
readonly running: Schema.Int;
|
|
80
|
+
}>, {}>;
|
|
81
|
+
/** The number of Attempts on a Worker that startup reconciliation still visits, excluding discarded leftovers. */
|
|
82
|
+
export declare class WorkerAttempts extends WorkerAttempts_base {
|
|
83
|
+
}
|
|
84
|
+
declare const LoopSighting_base: Schema.Class<LoopSighting, Schema.Struct<{
|
|
85
|
+
readonly loop: Schema.brand<Schema.NonEmptyString, "LoopName">;
|
|
86
|
+
readonly itemKey: Schema.brand<Schema.NonEmptyString, "ItemKey">;
|
|
87
|
+
/**
|
|
88
|
+
* The last matching Event, or the newest reopening or run-again Event for it; `None` after a
|
|
89
|
+
* non-matching sighting.
|
|
90
|
+
*/
|
|
91
|
+
readonly event: Schema.Option<Schema.brand<Schema.NonEmptyString, "EventId">>;
|
|
92
|
+
/** The Run of `event`, or `None` while it waits or after it was ignored. */
|
|
93
|
+
readonly run: Schema.Option<Schema.brand<Schema.NonEmptyString, "RunId">>;
|
|
94
|
+
/** The Run that suppresses the Item after a question or blocker, or `None`. */
|
|
95
|
+
readonly suppressedBy: Schema.Option<Schema.brand<Schema.NonEmptyString, "RunId">>;
|
|
96
|
+
}>, {}>;
|
|
97
|
+
/** A Loop's last sighting of an Item and its result (ADR 0007, ADR 0017). */
|
|
98
|
+
export declare class LoopSighting extends LoopSighting_base {
|
|
99
|
+
}
|
|
100
|
+
/** The monotonic version of the operator projection. */
|
|
43
101
|
export declare const ProjectionRevision: Schema.brand<Schema.Int, "ProjectionRevision">;
|
|
44
102
|
export type ProjectionRevision = typeof ProjectionRevision.Type;
|
|
45
103
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/run-reader/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/run-reader/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,OAAO,EAA0B,MAAM,qBAAqB,CAAC;AACtE,OAAO,EAAE,KAAK,EAAW,MAAM,mBAAmB,CAAC;AAInD,OAAO,EAAE,GAAG,EAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;;;;;;;IASjD,yFAAyF;;IAEzF;;;OAGG;;IAEH,oGAAoG;;IAEpG,uEAAuE;;;;;;;IAOvE,gFAAgF;;;AAvBlF,sCAAsC;AACtC,qBAAa,WAAY,SAAQ,gBAwB/B;CAAG;;;;;AAEL,4FAA4F;AAC5F,qBAAa,QAAS,SAAQ,aAG5B;CAAG;;;;;AAEL,8EAA8E;AAC9E,qBAAa,WAAY,SAAQ,gBAG/B;CAAG;;;;;;IAQH,yFAAyF;;IAEzF;;;OAGG;;IAEH,oGAAoG;;IAEpG,uEAAuE;;;;;;AAfzE,+CAA+C;AAC/C,qBAAa,UAAW,SAAQ,eAmB9B;CAAG;;;;IAOD,2DAA2D;;;AAL/D,kHAAkH;AAClH,qBAAa,cAAe,SAAQ,mBAWnC;CAAG;;;;IAMF;;;OAGG;;IAEH,4EAA4E;;IAE5E,+EAA+E;;;AAXjF,6EAA6E;AAC7E,qBAAa,YAAa,SAAQ,iBAYhC;CAAG;AAEL,wDAAwD;AACxD,eAAO,MAAM,kBAAkB,gDAE9B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAC,IAAI,CAAC"}
|
package/dist/run-reader/model.js
CHANGED
|
@@ -1,44 +1,103 @@
|
|
|
1
1
|
import { Agent } from "@usine/core/agent";
|
|
2
2
|
import { ModelId } from "@usine/core/agent/brain";
|
|
3
|
-
import { Attempt, AttemptTask } from "@usine/core/attempt";
|
|
4
|
-
import { Event } from "@usine/core/event";
|
|
3
|
+
import { Attempt, AttemptId, AttemptTask } from "@usine/core/attempt";
|
|
4
|
+
import { Event, EventId } from "@usine/core/event";
|
|
5
5
|
import { ItemKey } from "@usine/core/item";
|
|
6
|
+
import { LoopName, LoopPermissions } from "@usine/core/loop";
|
|
6
7
|
import { RepositoryName, RepositoryRevision } from "@usine/core/repository";
|
|
7
|
-
import { Run } from "@usine/core/run";
|
|
8
|
+
import { Run, RunId } from "@usine/core/run";
|
|
9
|
+
import { RunAgain } from "@usine/core/run/again";
|
|
10
|
+
import { RunApproval } from "@usine/core/run/approval";
|
|
8
11
|
import { Step } from "@usine/core/step";
|
|
12
|
+
import { WorkerName } from "@usine/core/worker";
|
|
9
13
|
import { Schema } from "effect";
|
|
10
14
|
import { TranscriptEntry } from "../transcript.js";
|
|
11
|
-
/** The full durable view of
|
|
15
|
+
/** The full durable view of a Run. */
|
|
12
16
|
export class RunSnapshot extends Schema.Class("@usine/engine/RunSnapshot")({
|
|
13
17
|
event: Event,
|
|
14
18
|
itemKey: ItemKey,
|
|
15
19
|
run: Run,
|
|
16
20
|
step: Step,
|
|
17
21
|
attempts: Schema.Array(Attempt),
|
|
22
|
+
/** The failed Attempt that the operator marked as resolved; its outcome is unchanged. */
|
|
23
|
+
resolvedFailureAttemptId: Schema.Option(AttemptId),
|
|
24
|
+
/**
|
|
25
|
+
* The time the Run last closed, or `None` while open. For older Runs, the last Attempt's end or
|
|
26
|
+
* start, or the Run's open time.
|
|
27
|
+
*/
|
|
28
|
+
closedAt: Schema.Option(Schema.DateTimeUtc),
|
|
29
|
+
/** The approval the Run consumed, or `None` before approval and for Loops with `approval: none`. */
|
|
30
|
+
approval: Schema.Option(RunApproval),
|
|
31
|
+
/** The run-again origin, or `None` for a Run opened by its trigger. */
|
|
32
|
+
runAgain: Schema.Option(RunAgain),
|
|
18
33
|
repository: RepositoryName,
|
|
19
34
|
revision: RepositoryRevision,
|
|
20
35
|
task: AttemptTask,
|
|
21
36
|
agent: Agent,
|
|
22
37
|
parentModel: Schema.Option(ModelId),
|
|
38
|
+
/** The repository access of the Run's Attempts, from the Loop at match time. */
|
|
39
|
+
permissions: LoopPermissions,
|
|
23
40
|
}) {
|
|
24
41
|
}
|
|
25
|
-
/** A Run
|
|
42
|
+
/** A Run and the Event it was opened for; the payload is the Item as the trigger saw it. */
|
|
43
|
+
export class RunEvent extends Schema.Class("@usine/engine/RunEvent")({
|
|
44
|
+
runId: RunId,
|
|
45
|
+
event: Event,
|
|
46
|
+
}) {
|
|
47
|
+
}
|
|
48
|
+
/** A Run snapshot and all its transcript entries, read in one transaction. */
|
|
26
49
|
export class RunEvidence extends Schema.Class("@usine/engine/RunEvidence")({
|
|
27
50
|
snapshot: RunSnapshot,
|
|
28
51
|
transcript: Schema.Array(TranscriptEntry),
|
|
29
52
|
}) {
|
|
30
53
|
}
|
|
31
|
-
/** The
|
|
54
|
+
/** The Run view used in operator Run lists. */
|
|
32
55
|
export class RunSummary extends Schema.Class("@usine/engine/RunSummary")({
|
|
33
56
|
itemKey: ItemKey,
|
|
34
57
|
run: Run,
|
|
35
58
|
step: Step,
|
|
36
59
|
attempts: Schema.Array(Attempt),
|
|
60
|
+
/** The failed Attempt that the operator marked as resolved; its outcome is unchanged. */
|
|
61
|
+
resolvedFailureAttemptId: Schema.Option(AttemptId),
|
|
62
|
+
/**
|
|
63
|
+
* The time the Run last closed, or `None` while open. For older Runs, the last Attempt's end or
|
|
64
|
+
* start, or the Run's open time.
|
|
65
|
+
*/
|
|
66
|
+
closedAt: Schema.Option(Schema.DateTimeUtc),
|
|
67
|
+
/** The approval the Run consumed, or `None` before approval and for Loops with `approval: none`. */
|
|
68
|
+
approval: Schema.Option(RunApproval),
|
|
69
|
+
/** The run-again origin, or `None` for a Run opened by its trigger. */
|
|
70
|
+
runAgain: Schema.Option(RunAgain),
|
|
37
71
|
repository: RepositoryName,
|
|
38
72
|
task: AttemptTask,
|
|
39
73
|
agent: Agent,
|
|
40
74
|
}) {
|
|
41
75
|
}
|
|
42
|
-
/**
|
|
76
|
+
/** The number of Attempts on a Worker that startup reconciliation still visits, excluding discarded leftovers. */
|
|
77
|
+
export class WorkerAttempts extends Schema.Class("@usine/engine/WorkerAttempts")(Schema.Struct({
|
|
78
|
+
worker: WorkerName,
|
|
79
|
+
attempts: Schema.Int.check(Schema.isGreaterThanOrEqualTo(1)),
|
|
80
|
+
/** The number of `attempts` without a recorded outcome. */
|
|
81
|
+
running: Schema.Int.check(Schema.isGreaterThanOrEqualTo(0)),
|
|
82
|
+
}).check(Schema.makeFilter(({ attempts, running }) => running <= attempts, {
|
|
83
|
+
message: "Expected no more open attempts than attempts",
|
|
84
|
+
}))) {
|
|
85
|
+
}
|
|
86
|
+
/** A Loop's last sighting of an Item and its result (ADR 0007, ADR 0017). */
|
|
87
|
+
export class LoopSighting extends Schema.Class("@usine/engine/LoopSighting")({
|
|
88
|
+
loop: LoopName,
|
|
89
|
+
itemKey: ItemKey,
|
|
90
|
+
/**
|
|
91
|
+
* The last matching Event, or the newest reopening or run-again Event for it; `None` after a
|
|
92
|
+
* non-matching sighting.
|
|
93
|
+
*/
|
|
94
|
+
event: Schema.Option(EventId),
|
|
95
|
+
/** The Run of `event`, or `None` while it waits or after it was ignored. */
|
|
96
|
+
run: Schema.Option(RunId),
|
|
97
|
+
/** The Run that suppresses the Item after a question or blocker, or `None`. */
|
|
98
|
+
suppressedBy: Schema.Option(RunId),
|
|
99
|
+
}) {
|
|
100
|
+
}
|
|
101
|
+
/** The monotonic version of the operator projection. */
|
|
43
102
|
export const ProjectionRevision = Schema.Int.check(Schema.isGreaterThanOrEqualTo(0)).pipe(Schema.brand("ProjectionRevision"));
|
|
44
103
|
//# sourceMappingURL=model.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/run-reader/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/run-reader/model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +1,44 @@
|
|
|
1
|
-
import { Context, Effect, Layer, Option } from "effect";
|
|
1
|
+
import { Context, type DateTime, Effect, Layer, Option } from "effect";
|
|
2
2
|
import { RunId } from "@usine/core/run";
|
|
3
3
|
import { ItemKey } from "@usine/core/item";
|
|
4
4
|
import { RunDatabase } from "../database/database.ts";
|
|
5
|
-
import { ProjectionRevision, RunEvidence, RunSnapshot, RunSummary } from "./model.ts";
|
|
5
|
+
import { type LoopSighting, ProjectionRevision, type RunEvent, RunEvidence, RunSnapshot, RunSummary, type WorkerAttempts } from "./model.ts";
|
|
6
6
|
import { TranscriptEntry, TranscriptQuery } from "../transcript.ts";
|
|
7
7
|
import type { RunStoreError } from "../engine/error.ts";
|
|
8
8
|
declare const RunReader_base: Context.ServiceClass<RunReader, "@usine/engine/RunReader", {
|
|
9
|
-
/**
|
|
9
|
+
/** Returns the Run's state, effective task and Agent, Step result, and Attempt history. */
|
|
10
10
|
readonly inspect: (runId: RunId) => Effect.Effect<RunSnapshot, RunStoreError>;
|
|
11
|
-
/**
|
|
11
|
+
/** Returns a Run snapshot and all its transcript entries, in append order, from one transaction. */
|
|
12
12
|
readonly evidence: (runId: RunId) => Effect.Effect<RunEvidence, RunStoreError>;
|
|
13
|
-
/**
|
|
13
|
+
/** Returns every open Run plus the newest `closedLimit` closed ones, newest first. */
|
|
14
14
|
readonly list: (options: {
|
|
15
15
|
readonly closedLimit: number;
|
|
16
16
|
}) => Effect.Effect<ReadonlyArray<RunSummary>, RunStoreError>;
|
|
17
|
-
/**
|
|
17
|
+
/** Returns the `limit` most recently closed Runs, by close time, newest first. */
|
|
18
|
+
readonly closed: (options: {
|
|
19
|
+
readonly limit: number;
|
|
20
|
+
}) => Effect.Effect<ReadonlyArray<RunSummary>, RunStoreError>;
|
|
21
|
+
/**
|
|
22
|
+
* Returns every Run that closed at or after `since`, or every closed Run for `None`, by close
|
|
23
|
+
* time, newest first.
|
|
24
|
+
*/
|
|
25
|
+
readonly closedSince: (since: Option.Option<DateTime.Utc>) => Effect.Effect<ReadonlyArray<RunSummary>, RunStoreError>;
|
|
26
|
+
/** Returns every Run for `itemKeys`, newest first, with all their Attempts. */
|
|
18
27
|
readonly forItems: (itemKeys: ReadonlyArray<ItemKey>) => Effect.Effect<ReadonlyArray<RunSummary>, RunStoreError>;
|
|
19
|
-
/** `
|
|
28
|
+
/** Returns the Event each existing Run in `runIds` was opened for, once per Run, in no particular order. */
|
|
29
|
+
readonly events: (runIds: ReadonlyArray<RunId>) => Effect.Effect<ReadonlyArray<RunEvent>, RunStoreError>;
|
|
30
|
+
/** Returns the projection revision. If the row is absent, returns `None`, and every cached projection is stale. */
|
|
20
31
|
readonly revision: () => Effect.Effect<Option.Option<ProjectionRevision>, RunStoreError>;
|
|
21
|
-
/**
|
|
32
|
+
/** Returns the requested part of an Attempt's transcript, in append order. */
|
|
22
33
|
readonly transcript: (query: TranscriptQuery) => Effect.Effect<ReadonlyArray<TranscriptEntry>, RunStoreError>;
|
|
34
|
+
/** Returns the Attempts that startup reconciliation visits, counted per Worker, by Worker name. */
|
|
35
|
+
readonly attemptsByWorker: () => Effect.Effect<ReadonlyArray<WorkerAttempts>, RunStoreError>;
|
|
36
|
+
/** Returns each Loop's last sighting of the Items in `itemKeys`, one entry per Loop and Item. */
|
|
37
|
+
readonly sightings: (itemKeys: ReadonlyArray<ItemKey>) => Effect.Effect<ReadonlyArray<LoopSighting>, RunStoreError>;
|
|
23
38
|
}>;
|
|
24
|
-
/**
|
|
39
|
+
/** The service that reads saved Run state and transcripts without starting or recovering execution. */
|
|
25
40
|
export declare class RunReader extends RunReader_base {
|
|
26
41
|
static readonly layer: Layer.Layer<RunReader, never, RunDatabase>;
|
|
27
42
|
}
|
|
28
|
-
export { RunEvidence, RunSnapshot, RunSummary, ProjectionRevision } from "./model.ts";
|
|
43
|
+
export { LoopSighting, RunEvent, RunEvidence, RunSnapshot, RunSummary, ProjectionRevision, WorkerAttempts, } from "./model.ts";
|
|
29
44
|
//# sourceMappingURL=run-reader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-reader.d.ts","sourceRoot":"","sources":["../../src/run-reader/run-reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"run-reader.d.ts","sourceRoot":"","sources":["../../src/run-reader/run-reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACvE,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EACL,KAAK,YAAY,EACjB,kBAAkB,EAClB,KAAK,QAAQ,EACb,WAAW,EACX,WAAW,EACX,UAAU,EACV,KAAK,cAAc,EACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAsB,eAAe,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;;IAmFpD,2FAA2F;sBACzE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC;IAC7E,oGAAoG;uBACjF,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC;IAC9E,sFAAsF;mBACvE,CAAC,OAAO,EAAE;QACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;KAC9B,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC;IAC7D,kFAAkF;qBACjE,CAAC,OAAO,EAAE;QACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACxB,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC;IAC7D;;;OAGG;0BACmB,CACpB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAC/B,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC;IAC5D,+EAA+E;uBAC5D,CACjB,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,KAC7B,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC;IAC5D,4GAA4G;qBAC3F,CACf,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,KACzB,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;IAC1D,mHAAmH;uBAChG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,aAAa,CAAC;IACxF,8EAA8E;yBACzD,CACnB,KAAK,EAAE,eAAe,KACnB,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,aAAa,CAAC;IACjE,mGAAmG;+BACxE,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC;IAC5F,iGAAiG;wBAC7E,CAClB,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,KAC7B,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,aAAa,CAAC;;AA1ClE,uGAAuG;AACvG,qBAAa,SAAU,SAAQ,cA2CD;IAC5B,MAAM,CAAC,QAAQ,CAAC,KAAK,6CAA0C;CAChE;AAED,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,cAAc,GACf,MAAM,YAAY,CAAC"}
|
|
@@ -2,9 +2,10 @@ import { Context, Effect, Layer, Option } from "effect";
|
|
|
2
2
|
import { RunId } from "@usine/core/run";
|
|
3
3
|
import { ItemKey } from "@usine/core/item";
|
|
4
4
|
import { RunDatabase } from "../database/database.js";
|
|
5
|
-
import { ProjectionRevision, RunEvidence, RunSnapshot, RunSummary } from "./model.js";
|
|
5
|
+
import { ProjectionRevision, RunEvidence, RunSnapshot, RunSummary, } from "./model.js";
|
|
6
6
|
import { TranscriptAllQuery, TranscriptEntry, TranscriptQuery } from "../transcript.js";
|
|
7
7
|
import { persistence } from "../store/codec.js";
|
|
8
|
+
import { leftoverQueries } from "../store/leftovers.js";
|
|
8
9
|
import { queriesFor } from "../store/queries.js";
|
|
9
10
|
const makeRunReader = Effect.gen(function* () {
|
|
10
11
|
const database = yield* RunDatabase;
|
|
@@ -22,7 +23,7 @@ const makeRunReader = Effect.gen(function* () {
|
|
|
22
23
|
transcript: transcripts.flat().sort((left, right) => left.sequence - right.sequence),
|
|
23
24
|
});
|
|
24
25
|
}))
|
|
25
|
-
.pipe(persistence("read
|
|
26
|
+
.pipe(persistence("read run evidence"));
|
|
26
27
|
yield* Effect.logDebug("Run evidence read", {
|
|
27
28
|
runId,
|
|
28
29
|
attempts: evidence.snapshot.attempts.length,
|
|
@@ -31,14 +32,31 @@ const makeRunReader = Effect.gen(function* () {
|
|
|
31
32
|
return evidence;
|
|
32
33
|
});
|
|
33
34
|
const list = Effect.fn("RunReader.list")((options) => queries.runSummaries(options.closedLimit).pipe(persistence("list runs")));
|
|
35
|
+
const closed = Effect.fn("RunReader.closed")((options) => queries.closedRunSummaries(options.limit).pipe(persistence("list closed runs")));
|
|
36
|
+
const closedSince = Effect.fn("RunReader.closedSince")((since) => queries.closedRunSummariesSince(since).pipe(persistence("list runs closed since a time")));
|
|
34
37
|
const revision = Effect.fn("RunReader.revision")(() => queries.revision().pipe(persistence("read projection revision")));
|
|
35
|
-
const forItems = Effect.fn("RunReader.forItems")((itemKeys) => queries.itemRunSummaries(itemKeys).pipe(persistence("read
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
+
const forItems = Effect.fn("RunReader.forItems")((itemKeys) => queries.itemRunSummaries(itemKeys).pipe(persistence("read item run histories")));
|
|
39
|
+
const events = Effect.fn("RunReader.events")((runIds) => queries.runEvents(runIds).pipe(persistence("read the events of runs")));
|
|
40
|
+
const transcript = Effect.fn("RunReader.transcript")((query) => queries.transcript(query).pipe(persistence("read attempt transcript")));
|
|
41
|
+
const attemptsByWorker = Effect.fn("RunReader.attemptsByWorker")(() => leftoverQueries(database).attemptCountsByWorker().pipe(persistence("count attempts by worker")));
|
|
42
|
+
const sightings = Effect.fn("RunReader.sightings")((itemKeys) => queries.loopItems.sightings(itemKeys).pipe(persistence("read loop sightings")));
|
|
43
|
+
return {
|
|
44
|
+
inspect,
|
|
45
|
+
evidence,
|
|
46
|
+
list,
|
|
47
|
+
closed,
|
|
48
|
+
closedSince,
|
|
49
|
+
forItems,
|
|
50
|
+
events,
|
|
51
|
+
revision,
|
|
52
|
+
transcript,
|
|
53
|
+
attemptsByWorker,
|
|
54
|
+
sightings,
|
|
55
|
+
};
|
|
38
56
|
});
|
|
39
|
-
/**
|
|
57
|
+
/** The service that reads saved Run state and transcripts without starting or recovering execution. */
|
|
40
58
|
export class RunReader extends Context.Service()("@usine/engine/RunReader") {
|
|
41
59
|
static layer = Layer.effect(RunReader, makeRunReader);
|
|
42
60
|
}
|
|
43
|
-
export { RunEvidence, RunSnapshot, RunSummary, ProjectionRevision } from "./model.js";
|
|
61
|
+
export { LoopSighting, RunEvent, RunEvidence, RunSnapshot, RunSummary, ProjectionRevision, WorkerAttempts, } from "./model.js";
|
|
44
62
|
//# sourceMappingURL=run-reader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-reader.js","sourceRoot":"","sources":["../../src/run-reader/run-reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"run-reader.js","sourceRoot":"","sources":["../../src/run-reader/run-reader.ts"],"names":[],"mappings":"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"}
|