@usine/core 0.1.0 → 0.3.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/README.md +32 -22
- package/dist/agent/agent.d.ts +27 -0
- package/dist/agent/agent.d.ts.map +1 -0
- package/dist/agent/agent.js +26 -0
- package/dist/agent/agent.js.map +1 -0
- package/dist/agent/brain.d.ts +24 -0
- package/dist/agent/brain.d.ts.map +1 -0
- package/dist/agent/brain.js +19 -0
- package/dist/agent/brain.js.map +1 -0
- package/dist/agent/capability.d.ts +23 -0
- package/dist/agent/capability.d.ts.map +1 -0
- package/dist/agent/capability.js +19 -0
- package/dist/agent/capability.js.map +1 -0
- package/dist/agent/session.d.ts +139 -0
- package/dist/agent/session.d.ts.map +1 -0
- package/dist/agent/session.js +119 -0
- package/dist/agent/session.js.map +1 -0
- package/dist/attempt/attempt.d.ts +53 -0
- package/dist/attempt/attempt.d.ts.map +1 -0
- package/dist/attempt/attempt.js +47 -0
- package/dist/attempt/attempt.js.map +1 -0
- package/dist/attempt/channel.d.ts +194 -0
- package/dist/attempt/channel.d.ts.map +1 -0
- package/dist/attempt/channel.js +196 -0
- package/dist/attempt/channel.js.map +1 -0
- package/dist/attempt/failure.d.ts +52 -0
- package/dist/attempt/failure.d.ts.map +1 -0
- package/dist/attempt/failure.js +48 -0
- package/dist/attempt/failure.js.map +1 -0
- package/dist/attempt/outcome.d.ts +20 -0
- package/dist/attempt/outcome.d.ts.map +1 -0
- package/dist/attempt/outcome.js +16 -0
- package/dist/attempt/outcome.js.map +1 -0
- package/dist/cycle-budget.d.ts +38 -0
- package/dist/cycle-budget.d.ts.map +1 -0
- package/dist/cycle-budget.js +46 -0
- package/dist/cycle-budget.js.map +1 -0
- package/dist/{lifecycle/event.d.ts → event.d.ts} +6 -11
- package/dist/event.d.ts.map +1 -0
- package/dist/event.js +21 -0
- package/dist/event.js.map +1 -0
- package/dist/instance.d.ts +3 -7
- package/dist/instance.d.ts.map +1 -1
- package/dist/instance.js +2 -6
- package/dist/instance.js.map +1 -1
- package/dist/item.d.ts +8 -0
- package/dist/item.d.ts.map +1 -0
- package/dist/item.js +6 -0
- package/dist/item.js.map +1 -0
- package/dist/loop.d.ts +9 -0
- package/dist/loop.d.ts.map +1 -0
- package/dist/loop.js +7 -0
- package/dist/loop.js.map +1 -0
- package/dist/repository.d.ts +12 -17
- package/dist/repository.d.ts.map +1 -1
- package/dist/repository.js +11 -16
- package/dist/repository.js.map +1 -1
- package/dist/run/run.d.ts +16 -0
- package/dist/run/run.d.ts.map +1 -0
- package/dist/run/run.js +16 -0
- package/dist/run/run.js.map +1 -0
- package/dist/run/state.d.ts +114 -0
- package/dist/run/state.d.ts.map +1 -0
- package/dist/run/state.js +102 -0
- package/dist/run/state.js.map +1 -0
- package/dist/{step-result.d.ts → step/result.d.ts} +7 -9
- package/dist/step/result.d.ts.map +1 -0
- package/dist/{step-result.js → step/result.js} +8 -10
- package/dist/step/result.js.map +1 -0
- package/dist/step/step.d.ts +21 -0
- package/dist/step/step.d.ts.map +1 -0
- package/dist/step/step.js +19 -0
- package/dist/step/step.js.map +1 -0
- package/dist/worker.d.ts +7 -7
- package/dist/worker.d.ts.map +1 -1
- package/dist/worker.js +5 -5
- package/dist/worker.js.map +1 -1
- package/package.json +76 -4
- package/dist/agent.d.ts +0 -121
- package/dist/agent.d.ts.map +0 -1
- package/dist/agent.js +0 -105
- package/dist/agent.js.map +0 -1
- package/dist/attempt-channel.d.ts +0 -134
- package/dist/attempt-channel.d.ts.map +0 -1
- package/dist/attempt-channel.js +0 -138
- package/dist/attempt-channel.js.map +0 -1
- package/dist/index.d.ts +0 -24
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -24
- package/dist/index.js.map +0 -1
- package/dist/lifecycle/attempt-failure.d.ts +0 -51
- package/dist/lifecycle/attempt-failure.d.ts.map +0 -1
- package/dist/lifecycle/attempt-failure.js +0 -45
- package/dist/lifecycle/attempt-failure.js.map +0 -1
- package/dist/lifecycle/attempt.d.ts +0 -61
- package/dist/lifecycle/attempt.d.ts.map +0 -1
- package/dist/lifecycle/attempt.js +0 -52
- package/dist/lifecycle/attempt.js.map +0 -1
- package/dist/lifecycle/event.d.ts.map +0 -1
- package/dist/lifecycle/event.js +0 -26
- package/dist/lifecycle/event.js.map +0 -1
- package/dist/lifecycle/item.d.ts +0 -11
- package/dist/lifecycle/item.d.ts.map +0 -1
- package/dist/lifecycle/item.js +0 -9
- package/dist/lifecycle/item.js.map +0 -1
- package/dist/lifecycle/loop.d.ts +0 -17
- package/dist/lifecycle/loop.d.ts.map +0 -1
- package/dist/lifecycle/loop.js +0 -15
- package/dist/lifecycle/loop.js.map +0 -1
- package/dist/lifecycle/run-state.d.ts +0 -133
- package/dist/lifecycle/run-state.d.ts.map +0 -1
- package/dist/lifecycle/run-state.js +0 -126
- package/dist/lifecycle/run-state.js.map +0 -1
- package/dist/lifecycle/run.d.ts +0 -22
- package/dist/lifecycle/run.d.ts.map +0 -1
- package/dist/lifecycle/run.js +0 -22
- package/dist/lifecycle/run.js.map +0 -1
- package/dist/lifecycle/step.d.ts +0 -23
- package/dist/lifecycle/step.d.ts.map +0 -1
- package/dist/lifecycle/step.js +0 -21
- package/dist/lifecycle/step.js.map +0 -1
- package/dist/step-result.d.ts.map +0 -1
- package/dist/step-result.js.map +0 -1
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
import { EventId } from "../event.js";
|
|
3
|
+
/**
|
|
4
|
+
* The run state machine (ADR 0002):
|
|
5
|
+
*
|
|
6
|
+
* pending ─────────────────────────► running ──► succeeded
|
|
7
|
+
* │ ▲ │
|
|
8
|
+
* ▼ │ ▼
|
|
9
|
+
* waiting ──(approval)──► queued ────┘ failed ──► (retry: attempt N+1) ──► running
|
|
10
|
+
*
|
|
11
|
+
* pending | waiting | queued | running ──► canceled (operator cancel)
|
|
12
|
+
* pending | waiting | queued ──► canceled (supersede, revoke: a started
|
|
13
|
+
* attempt always finishes, ADR 0007)
|
|
14
|
+
*
|
|
15
|
+
* Each transition accepts only the states it is legal on, so an illegal
|
|
16
|
+
* transition fails to compile. Construct states through the transitions or by
|
|
17
|
+
* decoding a stored row with `RunState`.
|
|
18
|
+
*/
|
|
19
|
+
/** The operator closed the run by hand. */
|
|
20
|
+
export class OperatorCanceled extends Schema.TaggedClass("CancelReason/OperatorCanceled")("OperatorCanceled", {}) {
|
|
21
|
+
}
|
|
22
|
+
/** A newer Event for the same Item took the run's place before any attempt started. */
|
|
23
|
+
export class Superseded extends Schema.TaggedClass("CancelReason/Superseded")("Superseded", { by: EventId }) {
|
|
24
|
+
}
|
|
25
|
+
/** The run's Item stopped matching its loop's trigger before any attempt started. */
|
|
26
|
+
export class Revoked extends Schema.TaggedClass("CancelReason/Revoked")("Revoked", {}) {
|
|
27
|
+
}
|
|
28
|
+
export const CancelReason = Schema.Union([OperatorCanceled, Superseded, Revoked]);
|
|
29
|
+
/** Just created: no attempt started and no approval gate passed. */
|
|
30
|
+
export class Pending extends Schema.TaggedClass("RunState/Pending")("Pending", {}) {
|
|
31
|
+
}
|
|
32
|
+
/** Parked on the loop's approval gate. The approval it waits for is an Event like any other fact. */
|
|
33
|
+
export class Waiting extends Schema.TaggedClass("RunState/Waiting")("Waiting", {}) {
|
|
34
|
+
}
|
|
35
|
+
/** Approved and waiting for a worker slot. */
|
|
36
|
+
export class Queued extends Schema.TaggedClass("RunState/Queued")("Queued", {}) {
|
|
37
|
+
}
|
|
38
|
+
/** An attempt is executing on a worker. */
|
|
39
|
+
export class Running extends Schema.TaggedClass("RunState/Running")("Running", {}) {
|
|
40
|
+
}
|
|
41
|
+
/** The step finished and its result is stored. */
|
|
42
|
+
export class Succeeded extends Schema.TaggedClass("RunState/Succeeded")("Succeeded", {}) {
|
|
43
|
+
}
|
|
44
|
+
/** The last attempt failed and no auto-retry applies. The failure is on the Attempt, and `retry` reopens the run. */
|
|
45
|
+
export class Failed extends Schema.TaggedClass("RunState/Failed")("Failed", {}) {
|
|
46
|
+
}
|
|
47
|
+
/** Canceled, with the reason recorded. */
|
|
48
|
+
export class Canceled extends Schema.TaggedClass("RunState/Canceled")("Canceled", {
|
|
49
|
+
reason: CancelReason,
|
|
50
|
+
}) {
|
|
51
|
+
}
|
|
52
|
+
/** Runs that still owe work, including those waiting for approval or a Worker. */
|
|
53
|
+
export const Open = Schema.Union([Pending, Waiting, Queued, Running]);
|
|
54
|
+
/** A Run's progress from creation through approval and execution to a recorded outcome. */
|
|
55
|
+
export const RunState = Schema.Union([...Open.members, Succeeded, Failed, Canceled]);
|
|
56
|
+
/** The states with no attempt started: what `supersede` and `revoke` accept. */
|
|
57
|
+
export const Unstarted = Schema.Union([Pending, Waiting, Queued]);
|
|
58
|
+
/** The states an attempt can start from: the gate is passed or absent. */
|
|
59
|
+
export const Startable = Schema.Union([Pending, Queued]);
|
|
60
|
+
export const isOpen = Schema.is(Open);
|
|
61
|
+
export const isUnstarted = Schema.is(Unstarted);
|
|
62
|
+
export const isStartable = Schema.is(Startable);
|
|
63
|
+
/** The operator actions permitted by a Run's lifecycle state. Command handlers still apply the typed transitions. */
|
|
64
|
+
export const operatorActions = (state) => ({
|
|
65
|
+
canApprove: state._tag === "Waiting",
|
|
66
|
+
canRetry: state._tag === "Failed",
|
|
67
|
+
canCancel: isOpen(state),
|
|
68
|
+
});
|
|
69
|
+
/**
|
|
70
|
+
* Builds a tag tuple that must name every `_tag` of `State` and nothing else,
|
|
71
|
+
* so the SQL-side lists below cannot drift from the unions above. A foreign tag
|
|
72
|
+
* fails the `Tags` constraint; a missing tag collapses the parameters to `[never]`.
|
|
73
|
+
*/
|
|
74
|
+
const tagsOf = () => (...tags) => tags;
|
|
75
|
+
/** The open states as `_tag` literals, for queries that filter stored rows. */
|
|
76
|
+
export const OPEN_STATE_TAGS = tagsOf()("Pending", "Waiting", "Queued", "Running");
|
|
77
|
+
/** Every state as a `_tag` literal, for read models that project stored rows. */
|
|
78
|
+
export const STATE_TAGS = tagsOf()("Pending", "Waiting", "Queued", "Running", "Succeeded", "Failed", "Canceled");
|
|
79
|
+
/** The unstarted states as `_tag` literals, for queries that filter stored rows. */
|
|
80
|
+
export const UNSTARTED_STATE_TAGS = tagsOf()("Pending", "Waiting", "Queued");
|
|
81
|
+
/** Parks a pending run on its loop's approval gate. */
|
|
82
|
+
export const awaitApproval = (_state) => new Waiting();
|
|
83
|
+
/** Returns the approved state; the Run still waits for a Worker slot before execution. */
|
|
84
|
+
export const approve = (_state) => new Queued();
|
|
85
|
+
/** Returns the running state for a first Attempt after any required approval has been granted. */
|
|
86
|
+
export const start = (_state) => new Running();
|
|
87
|
+
/** Closes the run after a successful attempt. */
|
|
88
|
+
export const succeed = (_state) => new Succeeded();
|
|
89
|
+
/** Closes the run after a failed attempt when no auto-retry applies; `shouldAutoRetry` decides that. */
|
|
90
|
+
export const fail = (_state) => new Failed();
|
|
91
|
+
/** Returns the reopened state for operator retry; attempt N+1 belongs to the same Run and Step. */
|
|
92
|
+
export const retry = (_state) => new Running();
|
|
93
|
+
/** Cancels from any open state. */
|
|
94
|
+
export const cancelByOperator = (_state) => new Canceled({ reason: new OperatorCanceled() });
|
|
95
|
+
/**
|
|
96
|
+
* Cancels an unstarted run because a newer Event for the same Item replaced it.
|
|
97
|
+
* A running attempt always finishes and the newer state is judged when it ends (ADR 0007).
|
|
98
|
+
*/
|
|
99
|
+
export const supersede = (_state, by) => new Canceled({ reason: new Superseded({ by }) });
|
|
100
|
+
/** Cancels an unstarted run because its Item stopped matching the loop's trigger. */
|
|
101
|
+
export const revoke = (_state) => new Canceled({ reason: new Revoked() });
|
|
102
|
+
//# sourceMappingURL=state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/run/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,28 +8,26 @@ export declare class Commit extends Commit_base {
|
|
|
8
8
|
}
|
|
9
9
|
declare const PullRequest_base: Schema.Class<PullRequest, Schema.TaggedStruct<"PullRequest", {
|
|
10
10
|
readonly number: Schema.Int;
|
|
11
|
-
readonly url: Schema.
|
|
11
|
+
readonly url: Schema.URLFromString;
|
|
12
12
|
}>, {}>;
|
|
13
13
|
/** A pull request the agent created or updated during the Attempt. */
|
|
14
14
|
export declare class PullRequest extends PullRequest_base {
|
|
15
15
|
}
|
|
16
16
|
declare const Comment_base: Schema.Class<Comment, Schema.TaggedStruct<"Comment", {
|
|
17
|
-
readonly url: Schema.
|
|
17
|
+
readonly url: Schema.URLFromString;
|
|
18
18
|
}>, {}>;
|
|
19
19
|
/** A GitHub comment the agent created or updated during the Attempt. */
|
|
20
20
|
export declare class Comment extends Comment_base {
|
|
21
21
|
}
|
|
22
|
-
|
|
23
|
-
export
|
|
22
|
+
/** A commit or GitHub artifact recorded as an outcome of the Agent's work. */
|
|
23
|
+
export declare const StepResultFact: Schema.Union<readonly [typeof Commit, typeof PullRequest, typeof Comment]>;
|
|
24
|
+
export type StepResultFact = typeof StepResultFact.Type;
|
|
24
25
|
declare const StepResult_base: Schema.Class<StepResult, Schema.Struct<{
|
|
25
26
|
readonly message: Schema.NonEmptyString;
|
|
26
27
|
readonly facts: Schema.$Array<Schema.Union<readonly [typeof Commit, typeof PullRequest, typeof Comment]>>;
|
|
27
28
|
}>, {}>;
|
|
28
|
-
/**
|
|
29
|
-
* The Step result carried by the run host's final envelope: the agent's final
|
|
30
|
-
* message plus durable facts that survive workspace cleanup.
|
|
31
|
-
*/
|
|
29
|
+
/** The agent's final message plus the facts that survive workspace cleanup. */
|
|
32
30
|
export declare class StepResult extends StepResult_base {
|
|
33
31
|
}
|
|
34
32
|
export {};
|
|
35
|
-
//# sourceMappingURL=
|
|
33
|
+
//# sourceMappingURL=result.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../src/step/result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;;;;;AAGhC,6EAA6E;AAC7E,qBAAa,MAAO,SAAQ,WAG1B;CAAG;;;;;AAEL,sEAAsE;AACtE,qBAAa,WAAY,SAAQ,gBAMhC;CAAG;;;;AAEJ,wEAAwE;AACxE,qBAAa,OAAQ,SAAQ,YAE3B;CAAG;AAEL,8EAA8E;AAC9E,eAAO,MAAM,cAAc,4EAA+C,CAAC;AAC3E,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,IAAI,CAAC;;;;;AAExD,+EAA+E;AAC/E,qBAAa,UAAW,SAAQ,eAG9B;CAAG"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Schema } from "effect";
|
|
2
|
-
import { CommitSha } from "
|
|
2
|
+
import { CommitSha } from "../repository.js";
|
|
3
3
|
/** A commit the run host found between the workspace base and final HEAD. */
|
|
4
4
|
export class Commit extends Schema.TaggedClass("StepResult/Commit")("Commit", {
|
|
5
5
|
sha: CommitSha,
|
|
@@ -9,22 +9,20 @@ export class Commit extends Schema.TaggedClass("StepResult/Commit")("Commit", {
|
|
|
9
9
|
/** A pull request the agent created or updated during the Attempt. */
|
|
10
10
|
export class PullRequest extends Schema.TaggedClass("StepResult/PullRequest")("PullRequest", {
|
|
11
11
|
number: Schema.Int.check(Schema.isGreaterThanOrEqualTo(1)),
|
|
12
|
-
url: Schema.
|
|
12
|
+
url: Schema.URLFromString,
|
|
13
13
|
}) {
|
|
14
14
|
}
|
|
15
15
|
/** A GitHub comment the agent created or updated during the Attempt. */
|
|
16
16
|
export class Comment extends Schema.TaggedClass("StepResult/Comment")("Comment", {
|
|
17
|
-
url: Schema.
|
|
17
|
+
url: Schema.URLFromString,
|
|
18
18
|
}) {
|
|
19
19
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
* message plus durable facts that survive workspace cleanup.
|
|
24
|
-
*/
|
|
20
|
+
/** A commit or GitHub artifact recorded as an outcome of the Agent's work. */
|
|
21
|
+
export const StepResultFact = Schema.Union([Commit, PullRequest, Comment]);
|
|
22
|
+
/** The agent's final message plus the facts that survive workspace cleanup. */
|
|
25
23
|
export class StepResult extends Schema.Class("StepResult")({
|
|
26
24
|
message: Schema.NonEmptyString,
|
|
27
|
-
facts: Schema.Array(
|
|
25
|
+
facts: Schema.Array(StepResultFact),
|
|
28
26
|
}) {
|
|
29
27
|
}
|
|
30
|
-
//# sourceMappingURL=
|
|
28
|
+
//# sourceMappingURL=result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/step/result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,6EAA6E;AAC7E,MAAM,OAAO,MAAO,SAAQ,MAAM,CAAC,WAAW,CAAS,mBAAmB,CAAC,CAAC,QAAQ,EAAE;IACpF,GAAG,EAAE,SAAS;IACd,OAAO,EAAE,MAAM,CAAC,cAAc;CAC/B,CAAC;CAAG;AAEL,sEAAsE;AACtE,MAAM,OAAO,WAAY,SAAQ,MAAM,CAAC,WAAW,CAAc,wBAAwB,CAAC,CACxF,aAAa,EACb;IACE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;IAC1D,GAAG,EAAE,MAAM,CAAC,aAAa;CAC1B,CACF;CAAG;AAEJ,wEAAwE;AACxE,MAAM,OAAO,OAAQ,SAAQ,MAAM,CAAC,WAAW,CAAU,oBAAoB,CAAC,CAAC,SAAS,EAAE;IACxF,GAAG,EAAE,MAAM,CAAC,aAAa;CAC1B,CAAC;CAAG;AAEL,8EAA8E;AAC9E,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;AAG3E,+EAA+E;AAC/E,MAAM,OAAO,UAAW,SAAQ,MAAM,CAAC,KAAK,CAAa,YAAY,CAAC,CAAC;IACrE,OAAO,EAAE,MAAM,CAAC,cAAc;IAC9B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC;CACpC,CAAC;CAAG"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
import { StepResult } from "./result.ts";
|
|
3
|
+
/**
|
|
4
|
+
* The loop-authored step name. Renaming a step in the loop file retires it and
|
|
5
|
+
* its stored results stay under the old name (ADR 0002).
|
|
6
|
+
*/
|
|
7
|
+
export declare const StepName: Schema.brand<Schema.NonEmptyString, "StepName">;
|
|
8
|
+
export type StepName = typeof StepName.Type;
|
|
9
|
+
declare const Step_base: Schema.Class<Step, Schema.Struct<{
|
|
10
|
+
readonly runId: Schema.brand<Schema.NonEmptyString, "RunId">;
|
|
11
|
+
readonly name: Schema.brand<Schema.NonEmptyString, "StepName">;
|
|
12
|
+
readonly result: Schema.Option<typeof StepResult>;
|
|
13
|
+
}>, {}>;
|
|
14
|
+
/**
|
|
15
|
+
* A named unit of work inside a run, exactly one per run in v1. The result is
|
|
16
|
+
* stored when an attempt succeeds and is none until then.
|
|
17
|
+
*/
|
|
18
|
+
export declare class Step extends Step_base {
|
|
19
|
+
}
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=step.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../../src/step/step.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;GAGG;AACH,eAAO,MAAM,QAAQ,iDAAuD,CAAC;AAE7E,MAAM,MAAM,QAAQ,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAC;;;;;;AAE5C;;;GAGG;AACH,qBAAa,IAAK,SAAQ,SAIxB;CAAG"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
import { RunId } from "../run/run.js";
|
|
3
|
+
import { StepResult } from "./result.js";
|
|
4
|
+
/**
|
|
5
|
+
* The loop-authored step name. Renaming a step in the loop file retires it and
|
|
6
|
+
* its stored results stay under the old name (ADR 0002).
|
|
7
|
+
*/
|
|
8
|
+
export const StepName = Schema.NonEmptyString.pipe(Schema.brand("StepName"));
|
|
9
|
+
/**
|
|
10
|
+
* A named unit of work inside a run, exactly one per run in v1. The result is
|
|
11
|
+
* stored when an attempt succeeds and is none until then.
|
|
12
|
+
*/
|
|
13
|
+
export class Step extends Schema.Class("Step")({
|
|
14
|
+
runId: RunId,
|
|
15
|
+
name: StepName,
|
|
16
|
+
result: Schema.Option(StepResult),
|
|
17
|
+
}) {
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=step.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step.js","sourceRoot":"","sources":["../../src/step/step.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;AAI7E;;;GAGG;AACH,MAAM,OAAO,IAAK,SAAQ,MAAM,CAAC,KAAK,CAAO,MAAM,CAAC,CAAC;IACnD,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;CAClC,CAAC;CAAG"}
|
package/dist/worker.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Schema } from "effect";
|
|
2
|
-
/**
|
|
3
|
-
export declare const
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export declare const
|
|
8
|
-
export type
|
|
2
|
+
/** Kebab-case name of a configured Worker. */
|
|
3
|
+
export declare const WorkerName: Schema.brand<Schema.String, "WorkerName">;
|
|
4
|
+
export type WorkerName = typeof WorkerName.Type;
|
|
5
|
+
/** The Worker adapters the engine ships. */
|
|
6
|
+
export declare const WORKER_KINDS: readonly ["local", "exe.dev"];
|
|
7
|
+
export declare const WorkerKind: Schema.Literals<readonly ["local", "exe.dev"]>;
|
|
8
|
+
export type WorkerKind = typeof WorkerKind.Type;
|
|
9
9
|
//# sourceMappingURL=worker.d.ts.map
|
package/dist/worker.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,8CAA8C;AAC9C,eAAO,MAAM,UAAU,2CAIW,CAAC;AAEnC,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAC;AAEhD,4CAA4C;AAC5C,eAAO,MAAM,YAAY,YAAI,OAAO,EAAE,SAAS,CAAU,CAAC;AAC1D,eAAO,MAAM,UAAU,gDAAgC,CAAC;AACxD,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAC"}
|
package/dist/worker.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Schema } from "effect";
|
|
2
|
-
/**
|
|
3
|
-
export const
|
|
4
|
-
export const Kind = Schema.Literals(KINDS);
|
|
5
|
-
/** Value object: the name-keyed identity of a configured Worker. */
|
|
6
|
-
export const Name = Schema.String.check(Schema.isPattern(/^[a-z0-9]+(?:-[a-z0-9]+)*$/u, {
|
|
2
|
+
/** Kebab-case name of a configured Worker. */
|
|
3
|
+
export const WorkerName = Schema.String.check(Schema.isPattern(/^[a-z0-9]+(?:-[a-z0-9]+)*$/u, {
|
|
7
4
|
message: "Expected a kebab-case Worker name",
|
|
8
5
|
})).pipe(Schema.brand("WorkerName"));
|
|
6
|
+
/** The Worker adapters the engine ships. */
|
|
7
|
+
export const WORKER_KINDS = ["local", "exe.dev"];
|
|
8
|
+
export const WorkerKind = Schema.Literals(WORKER_KINDS);
|
|
9
9
|
//# sourceMappingURL=worker.js.map
|
package/dist/worker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,8CAA8C;AAC9C,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAC3C,MAAM,CAAC,SAAS,CAAC,6BAA6B,EAAE;IAC9C,OAAO,EAAE,mCAAmC;CAC7C,CAAC,CACH,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;AAInC,4CAA4C;AAC5C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,SAAS,CAAU,CAAC;AAC1D,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@usine/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Domain model for usine: Event → Run → Step → Attempt, branded ids, the run state machine, and the typed attempt-failure taxonomy.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -14,9 +14,81 @@
|
|
|
14
14
|
"type": "module",
|
|
15
15
|
"sideEffects": false,
|
|
16
16
|
"exports": {
|
|
17
|
-
"
|
|
18
|
-
"types": "./dist/
|
|
19
|
-
"default": "./dist/
|
|
17
|
+
"./cycle-budget": {
|
|
18
|
+
"types": "./dist/cycle-budget.d.ts",
|
|
19
|
+
"default": "./dist/cycle-budget.js"
|
|
20
|
+
},
|
|
21
|
+
"./agent": {
|
|
22
|
+
"types": "./dist/agent/agent.d.ts",
|
|
23
|
+
"default": "./dist/agent/agent.js"
|
|
24
|
+
},
|
|
25
|
+
"./agent/brain": {
|
|
26
|
+
"types": "./dist/agent/brain.d.ts",
|
|
27
|
+
"default": "./dist/agent/brain.js"
|
|
28
|
+
},
|
|
29
|
+
"./agent/session": {
|
|
30
|
+
"types": "./dist/agent/session.d.ts",
|
|
31
|
+
"default": "./dist/agent/session.js"
|
|
32
|
+
},
|
|
33
|
+
"./attempt": {
|
|
34
|
+
"types": "./dist/attempt/attempt.d.ts",
|
|
35
|
+
"default": "./dist/attempt/attempt.js"
|
|
36
|
+
},
|
|
37
|
+
"./attempt/channel": {
|
|
38
|
+
"types": "./dist/attempt/channel.d.ts",
|
|
39
|
+
"default": "./dist/attempt/channel.js"
|
|
40
|
+
},
|
|
41
|
+
"./attempt/failure": {
|
|
42
|
+
"types": "./dist/attempt/failure.d.ts",
|
|
43
|
+
"default": "./dist/attempt/failure.js"
|
|
44
|
+
},
|
|
45
|
+
"./attempt/outcome": {
|
|
46
|
+
"types": "./dist/attempt/outcome.d.ts",
|
|
47
|
+
"default": "./dist/attempt/outcome.js"
|
|
48
|
+
},
|
|
49
|
+
"./event": {
|
|
50
|
+
"types": "./dist/event.d.ts",
|
|
51
|
+
"default": "./dist/event.js"
|
|
52
|
+
},
|
|
53
|
+
"./instance": {
|
|
54
|
+
"types": "./dist/instance.d.ts",
|
|
55
|
+
"default": "./dist/instance.js"
|
|
56
|
+
},
|
|
57
|
+
"./item": {
|
|
58
|
+
"types": "./dist/item.d.ts",
|
|
59
|
+
"default": "./dist/item.js"
|
|
60
|
+
},
|
|
61
|
+
"./loop": {
|
|
62
|
+
"types": "./dist/loop.d.ts",
|
|
63
|
+
"default": "./dist/loop.js"
|
|
64
|
+
},
|
|
65
|
+
"./repository": {
|
|
66
|
+
"types": "./dist/repository.d.ts",
|
|
67
|
+
"default": "./dist/repository.js"
|
|
68
|
+
},
|
|
69
|
+
"./run": {
|
|
70
|
+
"types": "./dist/run/run.d.ts",
|
|
71
|
+
"default": "./dist/run/run.js"
|
|
72
|
+
},
|
|
73
|
+
"./run/state": {
|
|
74
|
+
"types": "./dist/run/state.d.ts",
|
|
75
|
+
"default": "./dist/run/state.js"
|
|
76
|
+
},
|
|
77
|
+
"./step": {
|
|
78
|
+
"types": "./dist/step/step.d.ts",
|
|
79
|
+
"default": "./dist/step/step.js"
|
|
80
|
+
},
|
|
81
|
+
"./step/result": {
|
|
82
|
+
"types": "./dist/step/result.d.ts",
|
|
83
|
+
"default": "./dist/step/result.js"
|
|
84
|
+
},
|
|
85
|
+
"./worker": {
|
|
86
|
+
"types": "./dist/worker.d.ts",
|
|
87
|
+
"default": "./dist/worker.js"
|
|
88
|
+
},
|
|
89
|
+
"./agent/capability": {
|
|
90
|
+
"types": "./dist/agent/capability.d.ts",
|
|
91
|
+
"default": "./dist/agent/capability.js"
|
|
20
92
|
}
|
|
21
93
|
},
|
|
22
94
|
"publishConfig": {
|
package/dist/agent.d.ts
DELETED
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import { Option, Schema } from "effect";
|
|
2
|
-
/** Value object: the filename-keyed identity of one rostered Agent. */
|
|
3
|
-
export declare const Name: Schema.brand<Schema.String, "AgentName">;
|
|
4
|
-
export type Name = typeof Name.Type;
|
|
5
|
-
/** Value object: an opaque vendor model identifier. */
|
|
6
|
-
export declare const ModelId: Schema.brand<Schema.String, "ModelId">;
|
|
7
|
-
export type ModelId = typeof ModelId.Type;
|
|
8
|
-
/** Value object: standing Markdown instructions for one Agent. */
|
|
9
|
-
export declare const Persona: Schema.brand<Schema.String, "AgentPersona">;
|
|
10
|
-
export type Persona = typeof Persona.Type;
|
|
11
|
-
export declare const HARNESSES: readonly ["claude", "codex", "pi"];
|
|
12
|
-
export declare const Harness: Schema.Literals<readonly ["claude", "codex", "pi"]>;
|
|
13
|
-
export type Harness = typeof Harness.Type;
|
|
14
|
-
export declare const EFFORTS: readonly ["off", "minimal", "low", "medium", "high", "xhigh", "max"];
|
|
15
|
-
export declare const Effort: Schema.Literals<readonly ["off", "minimal", "low", "medium", "high", "xhigh", "max"]>;
|
|
16
|
-
export type Effort = typeof Effort.Type;
|
|
17
|
-
declare const BrainSpec_base: Schema.Class<BrainSpec, Schema.Struct<{
|
|
18
|
-
readonly harness: Schema.Literals<readonly ["claude", "codex", "pi"]>;
|
|
19
|
-
readonly model: Schema.brand<Schema.String, "ModelId">;
|
|
20
|
-
readonly effort: Schema.Literals<readonly ["off", "minimal", "low", "medium", "high", "xhigh", "max"]>;
|
|
21
|
-
}>, {}>;
|
|
22
|
-
/** Value object: the harness child that a run is declared to spawn. */
|
|
23
|
-
export declare class BrainSpec extends BrainSpec_base {
|
|
24
|
-
}
|
|
25
|
-
declare const Agent_base: Schema.Class<Agent, Schema.Struct<{
|
|
26
|
-
readonly name: Schema.brand<Schema.String, "AgentName">;
|
|
27
|
-
readonly brain: typeof BrainSpec;
|
|
28
|
-
readonly parentModel: Schema.OptionFromNullOr<Schema.brand<Schema.String, "ModelId">>;
|
|
29
|
-
readonly persona: Schema.brand<Schema.String, "AgentPersona">;
|
|
30
|
-
}>, {}>;
|
|
31
|
-
/** Entity: one named member of the instance's authored team roster. */
|
|
32
|
-
export declare class Agent extends Agent_base {
|
|
33
|
-
}
|
|
34
|
-
/** Value object: SDK-local identity of one parent or child agent session. */
|
|
35
|
-
export declare const SessionId: Schema.brand<Schema.NonEmptyString, "AgentSessionId">;
|
|
36
|
-
export type SessionId = typeof SessionId.Type;
|
|
37
|
-
declare const ParentSession_base: Schema.Class<ParentSession, Schema.TaggedStruct<"ParentSession", {
|
|
38
|
-
readonly id: Schema.brand<Schema.NonEmptyString, "AgentSessionId">;
|
|
39
|
-
readonly agent: Schema.brand<Schema.String, "AgentName">;
|
|
40
|
-
readonly brain: typeof BrainSpec;
|
|
41
|
-
}>, {}>;
|
|
42
|
-
/** Parent session descriptor. It cannot name a parent, so recursive nesting is unrepresentable. */
|
|
43
|
-
export declare class ParentSession extends ParentSession_base {
|
|
44
|
-
}
|
|
45
|
-
declare const ChildSession_base: Schema.Class<ChildSession, Schema.TaggedStruct<"ChildSession", {
|
|
46
|
-
readonly id: Schema.brand<Schema.NonEmptyString, "AgentSessionId">;
|
|
47
|
-
readonly parentId: Schema.brand<Schema.NonEmptyString, "AgentSessionId">;
|
|
48
|
-
readonly agent: Schema.brand<Schema.String, "AgentName">;
|
|
49
|
-
readonly brain: typeof BrainSpec;
|
|
50
|
-
}>, {}>;
|
|
51
|
-
/** Child session descriptor. Exactly one parent id keeps session nesting one level deep. */
|
|
52
|
-
export declare class ChildSession extends ChildSession_base {
|
|
53
|
-
}
|
|
54
|
-
export declare const Session: Schema.Union<readonly [typeof ParentSession, typeof ChildSession]>;
|
|
55
|
-
export type Session = typeof Session.Type;
|
|
56
|
-
declare const SessionStarted_base: Schema.Class<SessionStarted, Schema.TaggedStruct<"SessionStarted", {
|
|
57
|
-
readonly session: Schema.Union<readonly [typeof ParentSession, typeof ChildSession]>;
|
|
58
|
-
}>, {}>;
|
|
59
|
-
export declare class SessionStarted extends SessionStarted_base {
|
|
60
|
-
}
|
|
61
|
-
declare const TextOutput_base: Schema.Class<TextOutput, Schema.TaggedStruct<"TextOutput", {
|
|
62
|
-
readonly session: Schema.Union<readonly [typeof ParentSession, typeof ChildSession]>;
|
|
63
|
-
readonly text: Schema.NonEmptyString;
|
|
64
|
-
}>, {}>;
|
|
65
|
-
export declare class TextOutput extends TextOutput_base {
|
|
66
|
-
}
|
|
67
|
-
declare const ToolStarted_base: Schema.Class<ToolStarted, Schema.TaggedStruct<"ToolStarted", {
|
|
68
|
-
readonly session: Schema.Union<readonly [typeof ParentSession, typeof ChildSession]>;
|
|
69
|
-
readonly callId: Schema.NonEmptyString;
|
|
70
|
-
readonly tool: Schema.NonEmptyString;
|
|
71
|
-
readonly input: Schema.Codec<Schema.Json, Schema.Json, never, never>;
|
|
72
|
-
}>, {}>;
|
|
73
|
-
export declare class ToolStarted extends ToolStarted_base {
|
|
74
|
-
}
|
|
75
|
-
declare const ToolFinished_base: Schema.Class<ToolFinished, Schema.TaggedStruct<"ToolFinished", {
|
|
76
|
-
readonly session: Schema.Union<readonly [typeof ParentSession, typeof ChildSession]>;
|
|
77
|
-
readonly callId: Schema.NonEmptyString;
|
|
78
|
-
readonly tool: Schema.NonEmptyString;
|
|
79
|
-
readonly output: Schema.Codec<Schema.Json, Schema.Json, never, never>;
|
|
80
|
-
readonly isError: Schema.Boolean;
|
|
81
|
-
}>, {}>;
|
|
82
|
-
export declare class ToolFinished extends ToolFinished_base {
|
|
83
|
-
}
|
|
84
|
-
declare const SessionFinished_base: Schema.Class<SessionFinished, Schema.TaggedStruct<"SessionFinished", {
|
|
85
|
-
readonly session: Schema.Union<readonly [typeof ParentSession, typeof ChildSession]>;
|
|
86
|
-
}>, {}>;
|
|
87
|
-
export declare class SessionFinished extends SessionFinished_base {
|
|
88
|
-
}
|
|
89
|
-
/** Billing source whose native meter produced a usage or health observation. */
|
|
90
|
-
export declare const Pool: Schema.Literals<readonly ["apiKeys", "claudePlan", "chatgptPlan"]>;
|
|
91
|
-
export type Pool = typeof Pool.Type;
|
|
92
|
-
declare const RateLimitWindow_base: Schema.Class<RateLimitWindow, Schema.Struct<{
|
|
93
|
-
readonly usedPercent: Schema.Number;
|
|
94
|
-
readonly windowDurationMinutes: Schema.OptionFromNullOr<Schema.Number>;
|
|
95
|
-
readonly resetsAt: Schema.OptionFromNullOr<Schema.DateTimeUtcFromString>;
|
|
96
|
-
}>, {}>;
|
|
97
|
-
export declare class RateLimitWindow extends RateLimitWindow_base {
|
|
98
|
-
}
|
|
99
|
-
declare const RateLimitsSnapshot_base: Schema.Class<RateLimitsSnapshot, Schema.Struct<{
|
|
100
|
-
readonly limitId: Schema.OptionFromNullOr<Schema.String>;
|
|
101
|
-
readonly limitName: Schema.OptionFromNullOr<Schema.String>;
|
|
102
|
-
readonly primary: Schema.OptionFromNullOr<typeof RateLimitWindow>;
|
|
103
|
-
readonly secondary: Schema.OptionFromNullOr<typeof RateLimitWindow>;
|
|
104
|
-
}>, {}>;
|
|
105
|
-
export declare class RateLimitsSnapshot extends RateLimitsSnapshot_base {
|
|
106
|
-
}
|
|
107
|
-
declare const PoolRateLimitsUpdated_base: Schema.Class<PoolRateLimitsUpdated, Schema.TaggedStruct<"PoolRateLimitsUpdated", {
|
|
108
|
-
readonly session: Schema.Union<readonly [typeof ParentSession, typeof ChildSession]>;
|
|
109
|
-
readonly pool: Schema.Literals<readonly ["apiKeys", "claudePlan", "chatgptPlan"]>;
|
|
110
|
-
readonly rateLimits: typeof RateLimitsSnapshot;
|
|
111
|
-
}>, {}>;
|
|
112
|
-
/** Latest native billing-pool rate windows observed during one session. */
|
|
113
|
-
export declare class PoolRateLimitsUpdated extends PoolRateLimitsUpdated_base {
|
|
114
|
-
}
|
|
115
|
-
/** Normalized events emitted by every parent and child SDK backend. */
|
|
116
|
-
export declare const SessionEvent: Schema.Union<readonly [typeof SessionStarted, typeof TextOutput, typeof ToolStarted, typeof ToolFinished, typeof PoolRateLimitsUpdated, typeof SessionFinished]>;
|
|
117
|
-
export type SessionEvent = typeof SessionEvent.Type;
|
|
118
|
-
/** Pure deriver: a per-Agent parent override wins over the instance default. */
|
|
119
|
-
export declare const resolveParentModel: (agent: Agent, instanceDefault: Option.Option<ModelId>) => Option.Option<ModelId>;
|
|
120
|
-
export {};
|
|
121
|
-
//# sourceMappingURL=agent.d.ts.map
|
package/dist/agent.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKxC,uEAAuE;AACvE,eAAO,MAAM,IAAI,0CAIgB,CAAC;AAClC,MAAM,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,CAAC;AAEpC,uDAAuD;AACvD,eAAO,MAAM,OAAO,wCAEnB,CAAC;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAC;AAE1C,kEAAkE;AAClE,eAAO,MAAM,OAAO,6CAEnB,CAAC;AACF,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAC;AAE1C,eAAO,MAAM,SAAS,YAAI,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAU,CAAC;AAC5D,eAAO,MAAM,OAAO,qDAA6B,CAAC;AAClD,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAC;AAE1C,eAAO,MAAM,OAAO,YAAI,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAU,CAAC;AAC5F,eAAO,MAAM,MAAM,uFAA2B,CAAC;AAC/C,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAC;;;;;;AAExC,uEAAuE;AACvE,qBAAa,SAAU,SAAQ,cAI7B;CAAG;;;;;;;AAEL,uEAAuE;AACvE,qBAAa,KAAM,SAAQ,UAKzB;CAAG;AAEL,6EAA6E;AAC7E,eAAO,MAAM,SAAS,uDAA6D,CAAC;AACpF,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC,IAAI,CAAC;;;;;;AAE9C,mGAAmG;AACnG,qBAAa,aAAc,SAAQ,kBAOlC;CAAG;;;;;;;AAEJ,4FAA4F;AAC5F,qBAAa,YAAa,SAAQ,iBAQjC;CAAG;AAEJ,eAAO,MAAM,OAAO,oEAA8C,CAAC;AACnE,MAAM,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,IAAI,CAAC;;;;AAE1C,qBAAa,cAAe,SAAQ,mBAGnC;CAAG;;;;;AAEJ,qBAAa,UAAW,SAAQ,eAG9B;CAAG;;;;;;;AAEL,qBAAa,WAAY,SAAQ,gBAQhC;CAAG;;;;;;;;AAEJ,qBAAa,YAAa,SAAQ,iBASjC;CAAG;;;;AAEJ,qBAAa,eAAgB,SAAQ,oBAGpC;CAAG;AAEJ,gFAAgF;AAChF,eAAO,MAAM,IAAI,oEAAqE,CAAC;AACvF,MAAM,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,CAAC;;;;;;AAEpC,qBAAa,eAAgB,SAAQ,oBAInC;CAAG;;;;;;;AAEL,qBAAa,kBAAmB,SAAQ,uBAOtC;CAAG;;;;;;AAEL,2EAA2E;AAC3E,qBAAa,qBAAsB,SAAQ,0BAMzC;CAAG;AAEL,uEAAuE;AACvE,eAAO,MAAM,YAAY,kKAOvB,CAAC;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAC;AAEpD,gFAAgF;AAChF,eAAO,MAAM,kBAAkB,UACtB,KAAK,mBACK,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KACtC,MAAM,CAAC,MAAM,CAAC,OAAO,CAA6D,CAAC"}
|
package/dist/agent.js
DELETED
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import { Option, Schema } from "effect";
|
|
2
|
-
const nonBlankString = (message) => Schema.String.check(Schema.isPattern(/\S/u, { message }));
|
|
3
|
-
/** Value object: the filename-keyed identity of one rostered Agent. */
|
|
4
|
-
export const Name = Schema.String.check(Schema.isPattern(/^[a-z0-9]+(?:-[a-z0-9]+)*$/u, {
|
|
5
|
-
message: "Expected a kebab-case Agent name",
|
|
6
|
-
})).pipe(Schema.brand("AgentName"));
|
|
7
|
-
/** Value object: an opaque vendor model identifier. */
|
|
8
|
-
export const ModelId = nonBlankString("Expected a non-blank model id").pipe(Schema.brand("ModelId"));
|
|
9
|
-
/** Value object: standing Markdown instructions for one Agent. */
|
|
10
|
-
export const Persona = nonBlankString("Expected a non-blank Agent persona").pipe(Schema.brand("AgentPersona"));
|
|
11
|
-
export const HARNESSES = ["claude", "codex", "pi"];
|
|
12
|
-
export const Harness = Schema.Literals(HARNESSES);
|
|
13
|
-
export const EFFORTS = ["off", "minimal", "low", "medium", "high", "xhigh", "max"];
|
|
14
|
-
export const Effort = Schema.Literals(EFFORTS);
|
|
15
|
-
/** Value object: the harness child that a run is declared to spawn. */
|
|
16
|
-
export class BrainSpec extends Schema.Class("Agent/BrainSpec")({
|
|
17
|
-
harness: Harness,
|
|
18
|
-
model: ModelId,
|
|
19
|
-
effort: Effort,
|
|
20
|
-
}) {
|
|
21
|
-
}
|
|
22
|
-
/** Entity: one named member of the instance's authored team roster. */
|
|
23
|
-
export class Agent extends Schema.Class("Agent")({
|
|
24
|
-
name: Name,
|
|
25
|
-
brain: BrainSpec,
|
|
26
|
-
parentModel: Schema.OptionFromNullOr(ModelId),
|
|
27
|
-
persona: Persona,
|
|
28
|
-
}) {
|
|
29
|
-
}
|
|
30
|
-
/** Value object: SDK-local identity of one parent or child agent session. */
|
|
31
|
-
export const SessionId = Schema.NonEmptyString.pipe(Schema.brand("AgentSessionId"));
|
|
32
|
-
/** Parent session descriptor. It cannot name a parent, so recursive nesting is unrepresentable. */
|
|
33
|
-
export class ParentSession extends Schema.TaggedClass("Agent/ParentSession")("ParentSession", {
|
|
34
|
-
id: SessionId,
|
|
35
|
-
agent: Name,
|
|
36
|
-
brain: BrainSpec,
|
|
37
|
-
}) {
|
|
38
|
-
}
|
|
39
|
-
/** Child session descriptor. Exactly one parent id keeps session nesting one level deep. */
|
|
40
|
-
export class ChildSession extends Schema.TaggedClass("Agent/ChildSession")("ChildSession", {
|
|
41
|
-
id: SessionId,
|
|
42
|
-
parentId: SessionId,
|
|
43
|
-
agent: Name,
|
|
44
|
-
brain: BrainSpec,
|
|
45
|
-
}) {
|
|
46
|
-
}
|
|
47
|
-
export const Session = Schema.Union([ParentSession, ChildSession]);
|
|
48
|
-
export class SessionStarted extends Schema.TaggedClass("Agent/SessionStarted")("SessionStarted", { session: Session }) {
|
|
49
|
-
}
|
|
50
|
-
export class TextOutput extends Schema.TaggedClass("Agent/TextOutput")("TextOutput", {
|
|
51
|
-
session: Session,
|
|
52
|
-
text: Schema.NonEmptyString,
|
|
53
|
-
}) {
|
|
54
|
-
}
|
|
55
|
-
export class ToolStarted extends Schema.TaggedClass("Agent/ToolStarted")("ToolStarted", {
|
|
56
|
-
session: Session,
|
|
57
|
-
callId: Schema.NonEmptyString,
|
|
58
|
-
tool: Schema.NonEmptyString,
|
|
59
|
-
input: Schema.Json,
|
|
60
|
-
}) {
|
|
61
|
-
}
|
|
62
|
-
export class ToolFinished extends Schema.TaggedClass("Agent/ToolFinished")("ToolFinished", {
|
|
63
|
-
session: Session,
|
|
64
|
-
callId: Schema.NonEmptyString,
|
|
65
|
-
tool: Schema.NonEmptyString,
|
|
66
|
-
output: Schema.Json,
|
|
67
|
-
isError: Schema.Boolean,
|
|
68
|
-
}) {
|
|
69
|
-
}
|
|
70
|
-
export class SessionFinished extends Schema.TaggedClass("Agent/SessionFinished")("SessionFinished", { session: Session }) {
|
|
71
|
-
}
|
|
72
|
-
/** Billing source whose native meter produced a usage or health observation. */
|
|
73
|
-
export const Pool = Schema.Literals(["apiKeys", "claudePlan", "chatgptPlan"]);
|
|
74
|
-
export class RateLimitWindow extends Schema.Class("Agent/RateLimitWindow")({
|
|
75
|
-
usedPercent: Schema.Number,
|
|
76
|
-
windowDurationMinutes: Schema.OptionFromNullOr(Schema.Number),
|
|
77
|
-
resetsAt: Schema.OptionFromNullOr(Schema.DateTimeUtcFromString),
|
|
78
|
-
}) {
|
|
79
|
-
}
|
|
80
|
-
export class RateLimitsSnapshot extends Schema.Class("Agent/RateLimitsSnapshot")({
|
|
81
|
-
limitId: Schema.OptionFromNullOr(Schema.String),
|
|
82
|
-
limitName: Schema.OptionFromNullOr(Schema.String),
|
|
83
|
-
primary: Schema.OptionFromNullOr(RateLimitWindow),
|
|
84
|
-
secondary: Schema.OptionFromNullOr(RateLimitWindow),
|
|
85
|
-
}) {
|
|
86
|
-
}
|
|
87
|
-
/** Latest native billing-pool rate windows observed during one session. */
|
|
88
|
-
export class PoolRateLimitsUpdated extends Schema.TaggedClass("Agent/PoolRateLimitsUpdated")("PoolRateLimitsUpdated", {
|
|
89
|
-
session: Session,
|
|
90
|
-
pool: Pool,
|
|
91
|
-
rateLimits: RateLimitsSnapshot,
|
|
92
|
-
}) {
|
|
93
|
-
}
|
|
94
|
-
/** Normalized events emitted by every parent and child SDK backend. */
|
|
95
|
-
export const SessionEvent = Schema.Union([
|
|
96
|
-
SessionStarted,
|
|
97
|
-
TextOutput,
|
|
98
|
-
ToolStarted,
|
|
99
|
-
ToolFinished,
|
|
100
|
-
PoolRateLimitsUpdated,
|
|
101
|
-
SessionFinished,
|
|
102
|
-
]);
|
|
103
|
-
/** Pure deriver: a per-Agent parent override wins over the instance default. */
|
|
104
|
-
export const resolveParentModel = (agent, instanceDefault) => Option.firstSomeOf([agent.parentModel, instanceDefault]);
|
|
105
|
-
//# sourceMappingURL=agent.js.map
|
package/dist/agent.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|