@kitman-sh/sdk 0.10.76 → 0.10.77
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/dist/build/index.js +2 -2
- package/dist/{chunk-epczfxnt.js → chunk-3qttynnn.js} +13 -3
- package/dist/{chunk-08qcgk73.js → chunk-g7x3s4x6.js} +26 -5
- package/dist/loop/index.js +1 -1
- package/dist/program/index.js +2 -2
- package/package.json +1 -1
- package/types/packages/live/src/rpc/runner-client.d.ts +3 -0
- package/types/packages/live/src/rpc/runner-group.d.ts +18 -0
- package/types/packages/sdk/src/loop/activities.d.ts +2 -1
- package/types/packages/sdk/src/loop/steps.d.ts +16 -2
- package/types/packages/sdk/src/loop/test-loop.d.ts +6 -0
- package/types/packages/sdk/src/program/engine.d.ts +3 -0
package/dist/build/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
KitDigest,
|
|
5
5
|
AgentDeclaration,
|
|
6
6
|
KitDeclarations
|
|
7
|
-
} from "../chunk-
|
|
7
|
+
} from "../chunk-g7x3s4x6.js";
|
|
8
8
|
import {
|
|
9
9
|
digestSha256,
|
|
10
10
|
digestSha512,
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
RunnerRpcProtocolVersion,
|
|
14
14
|
describeFlag2,
|
|
15
15
|
Described2
|
|
16
|
-
} from "../chunk-
|
|
16
|
+
} from "../chunk-3qttynnn.js";
|
|
17
17
|
|
|
18
18
|
// packages/core/src/json.ts
|
|
19
19
|
import * as Schema from "effect/Schema";
|
|
@@ -33,7 +33,7 @@ import {
|
|
|
33
33
|
executeLoop2,
|
|
34
34
|
LoopCheckError2,
|
|
35
35
|
checkLoop2
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-g7x3s4x6.js";
|
|
37
37
|
// packages/core/src/agent-environment.ts
|
|
38
38
|
import * as Schema from "effect/Schema";
|
|
39
39
|
var AgentEnvironmentPolicy = Schema.Union([Schema.Literal("recommended"), Schema.Literal("required")]);
|
|
@@ -880,6 +880,7 @@ class RunnerCapabilityRpcs extends RpcGroup.make(Rpc.make("PutQuestion", {
|
|
|
880
880
|
verification: Schema7.optional(SuggestedVerification),
|
|
881
881
|
default: Schema7.optional(Schema7.String),
|
|
882
882
|
auto: Schema7.optional(Schema7.String),
|
|
883
|
+
unattendedAuto: Schema7.optional(Schema7.String),
|
|
883
884
|
timeoutMillis: Schema7.optional(Schema7.Finite),
|
|
884
885
|
deferredName: Schema7.String
|
|
885
886
|
},
|
|
@@ -950,6 +951,7 @@ class RunnerCapabilityRpcs extends RpcGroup.make(Rpc.make("PutQuestion", {
|
|
|
950
951
|
step: Schema7.String,
|
|
951
952
|
loop: Schema7.String,
|
|
952
953
|
input: Schema7.Json,
|
|
954
|
+
constraints: Schema7.optional(Schema7.Array(Schema7.String)),
|
|
953
955
|
deferredName: Schema7.String
|
|
954
956
|
},
|
|
955
957
|
success: Schema7.Struct({ runId: Schema7.String }),
|
|
@@ -971,7 +973,8 @@ class RunnerCapabilityRpcs extends RpcGroup.make(Rpc.make("PutQuestion", {
|
|
|
971
973
|
lease: ProgramLease,
|
|
972
974
|
step: Schema7.String,
|
|
973
975
|
text: Schema7.String,
|
|
974
|
-
artifactId: Schema7.optional(Schema7.String)
|
|
976
|
+
artifactId: Schema7.optional(Schema7.String),
|
|
977
|
+
kind: Schema7.optional(Schema7.Literals(["note", "blocker"]))
|
|
975
978
|
},
|
|
976
979
|
error: RunnerRpcError
|
|
977
980
|
}), Rpc.make("PerformHostEffect", {
|
|
@@ -1407,6 +1410,7 @@ var runnerHost = (capabilities) => ({
|
|
|
1407
1410
|
...launch.verification === undefined ? undefined : { verification: launch.verification },
|
|
1408
1411
|
...launch.default === undefined ? undefined : { default: launch.default },
|
|
1409
1412
|
...launch.auto === undefined ? undefined : { auto: launch.auto },
|
|
1413
|
+
...launch.unattendedAuto === undefined ? undefined : { unattendedAuto: launch.unattendedAuto },
|
|
1410
1414
|
...launch.timeoutMillis === undefined ? undefined : { timeoutMillis: launch.timeoutMillis }
|
|
1411
1415
|
})).pipe(Effect2.asVoid),
|
|
1412
1416
|
startVerification: (launch) => requested2(launch.step, capabilities.startVerification({
|
|
@@ -1434,6 +1438,7 @@ var runnerHost = (capabilities) => ({
|
|
|
1434
1438
|
step: launch.step,
|
|
1435
1439
|
loop: launch.loop,
|
|
1436
1440
|
input: launch.input,
|
|
1441
|
+
...launch.constraints === undefined ? undefined : { constraints: launch.constraints },
|
|
1437
1442
|
deferredName: childDeferred2(launch.step).name
|
|
1438
1443
|
})).pipe(Effect2.asVoid),
|
|
1439
1444
|
claimResource: (launch) => requested2(launch.step, capabilities.claimResource({
|
|
@@ -1630,6 +1635,7 @@ var rpcProgramPorts2 = (rpc, work) => {
|
|
|
1630
1635
|
...question.verification === undefined ? undefined : { verification: question.verification },
|
|
1631
1636
|
...question.default === undefined ? undefined : { default: question.default },
|
|
1632
1637
|
...question.auto === undefined ? undefined : { auto: question.auto },
|
|
1638
|
+
...question.unattendedAuto === undefined ? undefined : { unattendedAuto: question.unattendedAuto },
|
|
1633
1639
|
...question.timeoutMillis === undefined ? undefined : { timeoutMillis: question.timeoutMillis }
|
|
1634
1640
|
}),
|
|
1635
1641
|
startVerification: (verification) => rpc.startVerification({
|
|
@@ -1645,7 +1651,11 @@ var rpcProgramPorts2 = (rpc, work) => {
|
|
|
1645
1651
|
startAgentStep: ({ secrets, ...step }) => rpc.startAgentStep({ lease, ...step, ...secrets === undefined ? undefined : { secrets: [...secrets] } }),
|
|
1646
1652
|
awaitEvent: (wait) => rpc.awaitEvent({ lease, ...wait }),
|
|
1647
1653
|
claimResource: (claim) => rpc.claimResource({ lease, ...claim }),
|
|
1648
|
-
admitChild: (child) => rpc.admitChild({
|
|
1654
|
+
admitChild: ({ constraints, ...child }) => rpc.admitChild({
|
|
1655
|
+
lease,
|
|
1656
|
+
...child,
|
|
1657
|
+
...constraints === undefined ? undefined : { constraints: [...constraints] }
|
|
1658
|
+
}),
|
|
1649
1659
|
storeArtifact: ({ fileIds, ...artifact }) => rpc.storeArtifact({ lease, ...artifact, ...fileIds === undefined ? undefined : { fileIds: [...fileIds] } }),
|
|
1650
1660
|
...rpcRunFiles2(rpc, lease),
|
|
1651
1661
|
recordNote: (note) => rpc.recordNote({ lease, ...note }),
|
|
@@ -3006,6 +3006,8 @@ var ask2 = (name, question) => takeStep2(name, "ask", "ask", Effect3.gen(functio
|
|
|
3006
3006
|
return yield* new QuestionRefused2({ step: name, answer: fallback, options });
|
|
3007
3007
|
if (question.auto !== undefined && options !== undefined && !options.includes(question.auto))
|
|
3008
3008
|
return yield* new QuestionRefused2({ step: name, answer: question.auto, options });
|
|
3009
|
+
if (question.unattendedAuto !== undefined && options !== undefined && !options.includes(question.unattendedAuto))
|
|
3010
|
+
return yield* new QuestionRefused2({ step: name, answer: question.unattendedAuto, options });
|
|
3009
3011
|
yield* launch2(deferred, (host, token) => host.putQuestion({
|
|
3010
3012
|
step: name,
|
|
3011
3013
|
prompt: question.prompt,
|
|
@@ -3013,6 +3015,7 @@ var ask2 = (name, question) => takeStep2(name, "ask", "ask", Effect3.gen(functio
|
|
|
3013
3015
|
...advice,
|
|
3014
3016
|
...fallback === undefined ? undefined : { default: fallback },
|
|
3015
3017
|
...question.auto === undefined ? undefined : { auto: question.auto },
|
|
3018
|
+
...question.unattendedAuto === undefined ? undefined : { unattendedAuto: question.unattendedAuto },
|
|
3016
3019
|
...question.timeout === undefined ? undefined : { timeoutMillis: Duration.toMillis(Duration.fromInputUnsafe(question.timeout)) },
|
|
3017
3020
|
token
|
|
3018
3021
|
}));
|
|
@@ -3025,10 +3028,17 @@ var ask2 = (name, question) => takeStep2(name, "ask", "ask", Effect3.gen(functio
|
|
|
3025
3028
|
return yield* new QuestionRefused2({ step: name, answer, options });
|
|
3026
3029
|
return offeredAnswer;
|
|
3027
3030
|
}));
|
|
3028
|
-
var call2 = (name, loop, input) => takeStep2(name, "call", "call", Effect3.gen(function* () {
|
|
3031
|
+
var call2 = (name, loop, input, options) => takeStep2(name, "call", "call", Effect3.gen(function* () {
|
|
3029
3032
|
const deferred = childDeferred2(name);
|
|
3030
3033
|
const encoded = yield* toJson(name, loop.input, input);
|
|
3031
|
-
|
|
3034
|
+
const constraints = options?.constraints ?? [];
|
|
3035
|
+
yield* launch2(deferred, (host, token) => host.admitChild({
|
|
3036
|
+
step: name,
|
|
3037
|
+
loop: loop.id,
|
|
3038
|
+
input: encoded,
|
|
3039
|
+
...constraints.length === 0 ? undefined : { constraints },
|
|
3040
|
+
token
|
|
3041
|
+
}));
|
|
3032
3042
|
const result = yield* DurableDeferred.await(deferred);
|
|
3033
3043
|
return yield* Schema17.decodeEffect(Schema17.toCodecJson(loop.output))(result).pipe(Effect3.mapError((error) => new ChildFailed2({ step: name, loop: loop.id, reason: error.message })));
|
|
3034
3044
|
}));
|
|
@@ -3171,7 +3181,11 @@ var ArtifactRequest2 = Schema19.Struct({
|
|
|
3171
3181
|
files: Schema19.optional(Schema19.Array(RunFile2))
|
|
3172
3182
|
});
|
|
3173
3183
|
var ArtifactResult2 = Schema19.Struct({ artifactId: Schema19.String });
|
|
3174
|
-
var NoteRequest2 = Schema19.Struct({
|
|
3184
|
+
var NoteRequest2 = Schema19.Struct({
|
|
3185
|
+
text: Schema19.String,
|
|
3186
|
+
artifactId: Schema19.optional(Schema19.String),
|
|
3187
|
+
kind: Schema19.optional(Schema19.Literals(["note", "blocker"]))
|
|
3188
|
+
});
|
|
3175
3189
|
var CreateTasksRequest2 = Schema19.Struct({
|
|
3176
3190
|
tickets: Schema19.Array(PlanTicket2),
|
|
3177
3191
|
projectId: Schema19.optionalKey(Schema19.String)
|
|
@@ -4197,10 +4211,17 @@ var scriptedHost = (script, engine, agentLaunches, childLaunches, waits, verifyL
|
|
|
4197
4211
|
...launch.mergeTarget === undefined ? undefined : { mergeTarget: launch.mergeTarget }
|
|
4198
4212
|
})), resolve(agentDeferredNamed2(launch.deferredName), launch.token, scriptedExit(script.outputs?.[launch.step], (reason) => new StepFailed2({ step: launch.step, reason })))),
|
|
4199
4213
|
putQuestion: (launch) => {
|
|
4200
|
-
const
|
|
4214
|
+
const attended = script.attended === true;
|
|
4215
|
+
const auto = script.fullAuto === true ? launch.auto ?? (attended ? undefined : launch.unattendedAuto) : undefined;
|
|
4216
|
+
const answer = script.answers?.[launch.step] ?? auto ?? (attended ? undefined : launch.default);
|
|
4201
4217
|
return resolve(answerDeferred2(launch.step), launch.token, answer === undefined ? Exit3.fail(new StepFailed2({ step: launch.step, reason: "no answer was scripted" })) : Exit3.succeed(answer));
|
|
4202
4218
|
},
|
|
4203
|
-
admitChild: (launch) => Effect8.andThen(Effect8.sync(() => childLaunches.push({
|
|
4219
|
+
admitChild: (launch) => Effect8.andThen(Effect8.sync(() => childLaunches.push({
|
|
4220
|
+
step: launch.step,
|
|
4221
|
+
loop: launch.loop,
|
|
4222
|
+
input: launch.input,
|
|
4223
|
+
...launch.constraints === undefined ? undefined : { constraints: launch.constraints }
|
|
4224
|
+
})), resolve(childDeferred2(launch.step), launch.token, scriptedExit(script.children?.[launch.step], (reason) => new ChildFailed2({ step: launch.step, loop: launch.loop, reason })))),
|
|
4204
4225
|
awaitEvent: (launch) => {
|
|
4205
4226
|
const event = script.events?.[launch.step];
|
|
4206
4227
|
waits.push({
|
package/dist/loop/index.js
CHANGED
package/dist/program/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import"../chunk-
|
|
2
|
+
import"../chunk-g7x3s4x6.js";
|
|
3
3
|
import {
|
|
4
4
|
JournalWriteFailed2,
|
|
5
5
|
refusedStep2,
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
networkGuard2,
|
|
18
18
|
carriedKits2,
|
|
19
19
|
runKit2
|
|
20
|
-
} from "../chunk-
|
|
20
|
+
} from "../chunk-3qttynnn.js";
|
|
21
21
|
export {
|
|
22
22
|
Described2 as Described,
|
|
23
23
|
JournalWriteFailed2 as JournalWriteFailed,
|
package/package.json
CHANGED
|
@@ -1156,6 +1156,7 @@ export declare const makeProgramRpcClient: (options: ConnectionOptions) => Effec
|
|
|
1156
1156
|
} | undefined;
|
|
1157
1157
|
readonly default?: string | undefined;
|
|
1158
1158
|
readonly auto?: string | undefined;
|
|
1159
|
+
readonly unattendedAuto?: string | undefined;
|
|
1159
1160
|
readonly timeoutMillis?: number | undefined;
|
|
1160
1161
|
readonly deferredName: string;
|
|
1161
1162
|
}, options?: {
|
|
@@ -1324,6 +1325,7 @@ export declare const makeProgramRpcClient: (options: ConnectionOptions) => Effec
|
|
|
1324
1325
|
readonly step: string;
|
|
1325
1326
|
readonly loop: string;
|
|
1326
1327
|
readonly input: unknown;
|
|
1328
|
+
readonly constraints?: readonly string[] | undefined;
|
|
1327
1329
|
readonly deferredName: string;
|
|
1328
1330
|
}, options?: {
|
|
1329
1331
|
readonly headers?: import("effect/http/Headers").Input | undefined;
|
|
@@ -1534,6 +1536,7 @@ export declare const makeProgramRpcClient: (options: ConnectionOptions) => Effec
|
|
|
1534
1536
|
readonly step: string;
|
|
1535
1537
|
readonly text: string;
|
|
1536
1538
|
readonly artifactId?: string | undefined;
|
|
1539
|
+
readonly kind?: "blocker" | "note" | undefined;
|
|
1537
1540
|
}, options?: {
|
|
1538
1541
|
readonly headers?: import("effect/http/Headers").Input | undefined;
|
|
1539
1542
|
readonly context?: import("effect/Context").Context<never> | undefined;
|
|
@@ -754,6 +754,8 @@ declare const RunnerCapabilityRpcs_base: RpcGroup.RpcGroup<Rpc.Rpc<"AdmitChild",
|
|
|
754
754
|
step: Schema.String;
|
|
755
755
|
loop: Schema.String;
|
|
756
756
|
input: Schema.Codec<Schema.Json, Schema.Json, never, never>;
|
|
757
|
+
/** Constraints the Child Run's Intent starts with besides its parent's. */
|
|
758
|
+
constraints: Schema.optional<Schema.$Array<Schema.String>>;
|
|
757
759
|
deferredName: Schema.String;
|
|
758
760
|
}>, Schema.Struct<{
|
|
759
761
|
readonly runId: Schema.String;
|
|
@@ -1143,6 +1145,8 @@ declare const RunnerCapabilityRpcs_base: RpcGroup.RpcGroup<Rpc.Rpc<"AdmitChild",
|
|
|
1143
1145
|
default: Schema.optional<Schema.String>;
|
|
1144
1146
|
/** Taken at once when the Run's Team delivers in full auto. */
|
|
1145
1147
|
auto: Schema.optional<Schema.String>;
|
|
1148
|
+
/** Taken at once when the Run's Team delivers in full auto and nobody attends the Run. */
|
|
1149
|
+
unattendedAuto: Schema.optional<Schema.String>;
|
|
1146
1150
|
timeoutMillis: Schema.optional<Schema.Finite>;
|
|
1147
1151
|
deferredName: Schema.String;
|
|
1148
1152
|
}>, Schema.Struct<{
|
|
@@ -1226,6 +1230,8 @@ declare const RunnerCapabilityRpcs_base: RpcGroup.RpcGroup<Rpc.Rpc<"AdmitChild",
|
|
|
1226
1230
|
step: Schema.String;
|
|
1227
1231
|
text: Schema.String;
|
|
1228
1232
|
artifactId: Schema.optional<Schema.String>;
|
|
1233
|
+
/** A `blocker` records what the Task waits on; a note when left out. */
|
|
1234
|
+
kind: Schema.optional<Schema.Literals<readonly ["note", "blocker"]>>;
|
|
1229
1235
|
}>, Schema.Void, typeof RunnerRpcError, typeof RunnerAuthentication, never> | Rpc.Rpc<"ReportPipeline", Schema.Struct<{
|
|
1230
1236
|
lease: Schema.Struct<{
|
|
1231
1237
|
readonly workUnitId: Schema.String;
|
|
@@ -1479,6 +1485,8 @@ export declare const ProgramRpcs: RpcGroup.RpcGroup<Rpc.Rpc<"AdmitChild", Schema
|
|
|
1479
1485
|
step: Schema.String;
|
|
1480
1486
|
loop: Schema.String;
|
|
1481
1487
|
input: Schema.Codec<Schema.Json, Schema.Json, never, never>;
|
|
1488
|
+
/** Constraints the Child Run's Intent starts with besides its parent's. */
|
|
1489
|
+
constraints: Schema.optional<Schema.$Array<Schema.String>>;
|
|
1482
1490
|
deferredName: Schema.String;
|
|
1483
1491
|
}>, Schema.Struct<{
|
|
1484
1492
|
readonly runId: Schema.String;
|
|
@@ -1967,6 +1975,8 @@ export declare const ProgramRpcs: RpcGroup.RpcGroup<Rpc.Rpc<"AdmitChild", Schema
|
|
|
1967
1975
|
default: Schema.optional<Schema.String>;
|
|
1968
1976
|
/** Taken at once when the Run's Team delivers in full auto. */
|
|
1969
1977
|
auto: Schema.optional<Schema.String>;
|
|
1978
|
+
/** Taken at once when the Run's Team delivers in full auto and nobody attends the Run. */
|
|
1979
|
+
unattendedAuto: Schema.optional<Schema.String>;
|
|
1970
1980
|
timeoutMillis: Schema.optional<Schema.Finite>;
|
|
1971
1981
|
deferredName: Schema.String;
|
|
1972
1982
|
}>, Schema.Struct<{
|
|
@@ -2063,6 +2073,8 @@ export declare const ProgramRpcs: RpcGroup.RpcGroup<Rpc.Rpc<"AdmitChild", Schema
|
|
|
2063
2073
|
step: Schema.String;
|
|
2064
2074
|
text: Schema.String;
|
|
2065
2075
|
artifactId: Schema.optional<Schema.String>;
|
|
2076
|
+
/** A `blocker` records what the Task waits on; a note when left out. */
|
|
2077
|
+
kind: Schema.optional<Schema.Literals<readonly ["note", "blocker"]>>;
|
|
2066
2078
|
}>, Schema.Void, typeof RunnerRpcError, typeof RunnerAuthentication, never> | Rpc.Rpc<"ReportPipeline", Schema.Struct<{
|
|
2067
2079
|
lease: Schema.Struct<{
|
|
2068
2080
|
readonly workUnitId: Schema.String;
|
|
@@ -2262,6 +2274,8 @@ export declare const RunnerRpcs: RpcGroup.RpcGroup<Rpc.Rpc<"AdmitChild", Schema.
|
|
|
2262
2274
|
step: Schema.String;
|
|
2263
2275
|
loop: Schema.String;
|
|
2264
2276
|
input: Schema.Codec<Schema.Json, Schema.Json, never, never>;
|
|
2277
|
+
/** Constraints the Child Run's Intent starts with besides its parent's. */
|
|
2278
|
+
constraints: Schema.optional<Schema.$Array<Schema.String>>;
|
|
2265
2279
|
deferredName: Schema.String;
|
|
2266
2280
|
}>, Schema.Struct<{
|
|
2267
2281
|
readonly runId: Schema.String;
|
|
@@ -3203,6 +3217,8 @@ export declare const RunnerRpcs: RpcGroup.RpcGroup<Rpc.Rpc<"AdmitChild", Schema.
|
|
|
3203
3217
|
default: Schema.optional<Schema.String>;
|
|
3204
3218
|
/** Taken at once when the Run's Team delivers in full auto. */
|
|
3205
3219
|
auto: Schema.optional<Schema.String>;
|
|
3220
|
+
/** Taken at once when the Run's Team delivers in full auto and nobody attends the Run. */
|
|
3221
|
+
unattendedAuto: Schema.optional<Schema.String>;
|
|
3206
3222
|
timeoutMillis: Schema.optional<Schema.Finite>;
|
|
3207
3223
|
deferredName: Schema.String;
|
|
3208
3224
|
}>, Schema.Struct<{
|
|
@@ -3299,6 +3315,8 @@ export declare const RunnerRpcs: RpcGroup.RpcGroup<Rpc.Rpc<"AdmitChild", Schema.
|
|
|
3299
3315
|
step: Schema.String;
|
|
3300
3316
|
text: Schema.String;
|
|
3301
3317
|
artifactId: Schema.optional<Schema.String>;
|
|
3318
|
+
/** A `blocker` records what the Task waits on; a note when left out. */
|
|
3319
|
+
kind: Schema.optional<Schema.Literals<readonly ["note", "blocker"]>>;
|
|
3302
3320
|
}>, Schema.Void, typeof RunnerRpcError, typeof RunnerAuthentication, never> | Rpc.Rpc<"Release", Schema.Struct<{
|
|
3303
3321
|
readonly workUnitId: Schema.String;
|
|
3304
3322
|
readonly lease: Schema.Struct<{
|
|
@@ -50,10 +50,11 @@ export declare const ArtifactRequest: Schema.Struct<{
|
|
|
50
50
|
export declare const ArtifactResult: Schema.Struct<{
|
|
51
51
|
readonly artifactId: Schema.String;
|
|
52
52
|
}>;
|
|
53
|
-
/** A thread entry on the Run's Task; given an artifact, it links to it. */
|
|
53
|
+
/** A thread entry on the Run's Task; given an artifact, it links to it. A `blocker` records what the Task waits on. */
|
|
54
54
|
export declare const NoteRequest: Schema.Struct<{
|
|
55
55
|
readonly text: Schema.String;
|
|
56
56
|
readonly artifactId: Schema.optional<Schema.String>;
|
|
57
|
+
readonly kind: Schema.optional<Schema.Literals<readonly ["note", "blocker"]>>;
|
|
57
58
|
}>;
|
|
58
59
|
export declare const CreateTasksRequest: Schema.Struct<{
|
|
59
60
|
readonly tickets: Schema.$Array<Schema.Struct<{
|
|
@@ -134,6 +134,8 @@ export type QuestionLaunch = Launch & QuestionAdvice & {
|
|
|
134
134
|
readonly default?: string;
|
|
135
135
|
/** Taken at once, with nobody asked, when the Run's Team delivers in full auto. */
|
|
136
136
|
readonly auto?: string;
|
|
137
|
+
/** Taken at once, with nobody asked, when the Run's Team delivers in full auto and nobody attends the Run. */
|
|
138
|
+
readonly unattendedAuto?: string;
|
|
137
139
|
readonly timeoutMillis?: number;
|
|
138
140
|
/** Approving the Question approves this verification. */
|
|
139
141
|
readonly verification?: SuggestedVerification;
|
|
@@ -163,6 +165,8 @@ export type ClaimLaunch = Launch & {
|
|
|
163
165
|
export type ChildLaunch = Launch & {
|
|
164
166
|
readonly loop: string;
|
|
165
167
|
readonly input: Schema.Json;
|
|
168
|
+
/** Constraints the Child Run's Intent starts with besides its parent's, spelled as a person spells one. */
|
|
169
|
+
readonly constraints?: readonly string[];
|
|
166
170
|
};
|
|
167
171
|
/** An Event that settles a wait besides its own, with its own filter and `since`. */
|
|
168
172
|
export type OtherEvent = {
|
|
@@ -263,6 +267,11 @@ type Fallback<Value extends string> = {
|
|
|
263
267
|
* full-auto Team has handed to the Loop, such as merging a change its Review passed.
|
|
264
268
|
*/
|
|
265
269
|
readonly auto?: Value;
|
|
270
|
+
/**
|
|
271
|
+
* The answer Kitman takes at once, asking nobody, when the Run's Team delivers in full auto and nobody attends the
|
|
272
|
+
* Run, as when full auto started it. A Run a person started still asks them.
|
|
273
|
+
*/
|
|
274
|
+
readonly unattendedAuto?: Value;
|
|
266
275
|
};
|
|
267
276
|
/** The answer the Loop would pick and why, in one or two sentences. */
|
|
268
277
|
type Recommended<Value extends string> = {
|
|
@@ -288,8 +297,13 @@ type Question<Options extends readonly QuestionOption[]> = ({
|
|
|
288
297
|
* an option can carry a short `description` of its trade-off, and every Question recommends an answer and says why.
|
|
289
298
|
*/
|
|
290
299
|
export declare const ask: <const Options extends readonly QuestionOption[]>(name: string, question: Question<Options>) => Effect.Effect<OptionValue<Options[number]>, CapabilityDenied | DuplicateStep | QuestionRefused | StepFailed, LoopHost | LoopRun | import("effect/workflow/WorkflowEngine").WorkflowEngine | import("effect/workflow/WorkflowEngine").WorkflowInstance>;
|
|
291
|
-
/**
|
|
292
|
-
|
|
300
|
+
/**
|
|
301
|
+
* Starts a Child Run of `loop`, a Loop or its id and schemas, and awaits its output. Its Intent carries its parent's
|
|
302
|
+
* constraints and any in `options.constraints`.
|
|
303
|
+
*/
|
|
304
|
+
export declare const call: <In, Out>(name: string, loop: Pick<LoopDefinition<In, Out, unknown>, 'id' | 'input' | 'output'>, input: In, options?: {
|
|
305
|
+
readonly constraints?: readonly string[];
|
|
306
|
+
}) => Effect.Effect<Out, CapabilityDenied | ChildFailed | DuplicateStep | StepFailed, LoopHost | LoopRun | import("effect/workflow/WorkflowEngine").WorkflowEngine | import("effect/workflow/WorkflowEngine").WorkflowInstance>;
|
|
293
307
|
/**
|
|
294
308
|
* Waits for an Event matching `filter`, which is data the control plane matches. A wait on a ChangeRequest's Event
|
|
295
309
|
* fails with ChangeRequestClosed once that ChangeRequest is closed or merged, rather than waiting out its timeout.
|
|
@@ -54,6 +54,11 @@ export type TestLoopScript = {
|
|
|
54
54
|
};
|
|
55
55
|
/** Runs as a full-auto Team's Run: an unscripted Question with a full-auto answer takes it. */
|
|
56
56
|
readonly fullAuto?: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Runs as a Run a person started: an unscripted Question takes only its `auto` answer, and otherwise waits for them,
|
|
59
|
+
* which fails its Step here since no time passes. Unattended by default.
|
|
60
|
+
*/
|
|
61
|
+
readonly attended?: boolean;
|
|
57
62
|
readonly children?: {
|
|
58
63
|
readonly [step: string]: Scripted;
|
|
59
64
|
};
|
|
@@ -127,6 +132,7 @@ type ChildLaunchRecord = {
|
|
|
127
132
|
readonly step: string;
|
|
128
133
|
readonly loop: string;
|
|
129
134
|
readonly input: Schema.Json;
|
|
135
|
+
readonly constraints?: readonly string[];
|
|
130
136
|
};
|
|
131
137
|
/** The workflow a Loop's program runs as; a Run is one execution of it. */
|
|
132
138
|
export declare const loopWorkflow: <In, Out, E>(loop: LoopDefinition<In, Out, E>) => Workflow.Workflow<`kitman-loop/${string}`, Schema.Struct<{
|
|
@@ -43,6 +43,7 @@ export type ProgramCapabilities = {
|
|
|
43
43
|
readonly verification?: SuggestedVerification;
|
|
44
44
|
readonly default?: string;
|
|
45
45
|
readonly auto?: string;
|
|
46
|
+
readonly unattendedAuto?: string;
|
|
46
47
|
readonly timeoutMillis?: number;
|
|
47
48
|
readonly deferredName: string;
|
|
48
49
|
}) => Effect.Effect<{
|
|
@@ -92,6 +93,7 @@ export type ProgramCapabilities = {
|
|
|
92
93
|
readonly step: string;
|
|
93
94
|
readonly loop: string;
|
|
94
95
|
readonly input: Schema.Json;
|
|
96
|
+
readonly constraints?: readonly string[];
|
|
95
97
|
readonly deferredName: string;
|
|
96
98
|
}) => Effect.Effect<{
|
|
97
99
|
readonly runId: string;
|
|
@@ -132,6 +134,7 @@ export type ProgramCapabilities = {
|
|
|
132
134
|
readonly step: string;
|
|
133
135
|
readonly text: string;
|
|
134
136
|
readonly artifactId?: string | undefined;
|
|
137
|
+
readonly kind?: 'note' | 'blocker' | undefined;
|
|
135
138
|
}) => Effect.Effect<void, Error>;
|
|
136
139
|
readonly performHostEffect: (request: {
|
|
137
140
|
readonly step: string;
|