@kitman-sh/sdk 0.10.81 → 0.10.83
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-hrwq77a0.js → chunk-3pz068kn.js} +11 -5
- package/dist/{chunk-9ff7wyqt.js → chunk-cqknxyv9.js} +89 -47
- package/dist/loop/index.js +7 -1
- package/dist/program/index.js +2 -2
- package/package.json +1 -1
- package/types/packages/core/src/runner.d.ts +18 -0
- package/types/packages/core/src/step-brief.d.ts +1 -2
- package/types/packages/core/src/work-unit.d.ts +33 -1
- package/types/packages/live/src/rpc/runner-client.d.ts +15 -0
- package/types/packages/live/src/rpc/runner-group.d.ts +1515 -1486
- package/types/packages/sdk/src/loop/activities.d.ts +3 -0
- package/types/packages/sdk/src/loop/index.d.ts +1 -0
- package/types/packages/sdk/src/loop/resolve.d.ts +13 -0
- package/types/packages/sdk/src/loop/steps.d.ts +5 -0
- package/types/packages/sdk/src/loop/sync.d.ts +8 -1
- package/types/packages/sdk/src/loop/test-loop.d.ts +9 -0
- package/types/packages/sdk/src/program/engine.d.ts +2 -1
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-cqknxyv9.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-3pz068kn.js";
|
|
17
17
|
|
|
18
18
|
// packages/core/src/json.ts
|
|
19
19
|
import * as Schema from "effect/Schema";
|
|
@@ -22,6 +22,7 @@ import {
|
|
|
22
22
|
ProgramWorkUnit,
|
|
23
23
|
ApprovedCheck,
|
|
24
24
|
MeasurePlan2,
|
|
25
|
+
ResolveSpec,
|
|
25
26
|
WorkUnitClaimResult,
|
|
26
27
|
WorkUnitClaimInput,
|
|
27
28
|
WorkUnitHeartbeatInput,
|
|
@@ -29,11 +30,12 @@ import {
|
|
|
29
30
|
WorkUnitReleaseInput,
|
|
30
31
|
WorkUnitCompletion,
|
|
31
32
|
measureDeferred2,
|
|
33
|
+
resolveDeferred2,
|
|
32
34
|
loopWorkflow2,
|
|
33
35
|
executeLoop2,
|
|
34
36
|
LoopCheckError2,
|
|
35
37
|
checkLoop2
|
|
36
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-cqknxyv9.js";
|
|
37
39
|
// packages/core/src/agent-environment.ts
|
|
38
40
|
import * as Schema from "effect/Schema";
|
|
39
41
|
var AgentEnvironmentPolicy = Schema.Union([Schema.Literal("recommended"), Schema.Literal("required")]);
|
|
@@ -916,7 +918,8 @@ class RunnerCapabilityRpcs extends RpcGroup.make(Rpc.make("PutQuestion", {
|
|
|
916
918
|
plan: MeasurePlan2,
|
|
917
919
|
samples: Schema7.Int,
|
|
918
920
|
calibrate: Schema7.Boolean
|
|
919
|
-
}))
|
|
921
|
+
})),
|
|
922
|
+
resolve: Schema7.optionalKey(ResolveSpec)
|
|
920
923
|
},
|
|
921
924
|
success: Schema7.Struct({ verificationId: Schema7.String }),
|
|
922
925
|
error: RunnerRpcError
|
|
@@ -1057,6 +1060,7 @@ class RunnerCapabilityRpcs extends RpcGroup.make(Rpc.make("PutQuestion", {
|
|
|
1057
1060
|
runnerChecks: Schema7.optionalKey(Schema7.Array(Schema7.String)),
|
|
1058
1061
|
approved: Schema7.optionalKey(Schema7.String),
|
|
1059
1062
|
repository: Schema7.optionalKey(Schema7.String),
|
|
1063
|
+
targetBranch: Schema7.optionalKey(Schema7.String),
|
|
1060
1064
|
conflicts: Schema7.optionalKey(Schema7.Boolean),
|
|
1061
1065
|
needsRebase: Schema7.optionalKey(Schema7.Boolean),
|
|
1062
1066
|
target: Schema7.optionalKey(Schema7.Struct({
|
|
@@ -1417,12 +1421,13 @@ var runnerHost = (capabilities) => ({
|
|
|
1417
1421
|
})).pipe(Effect2.asVoid),
|
|
1418
1422
|
startVerification: (launch) => requested2(launch.step, capabilities.startVerification({
|
|
1419
1423
|
step: launch.step,
|
|
1420
|
-
deferredName: (launch.measure === undefined ? verifyDeferred2 : measureDeferred2)(launch.step).name,
|
|
1424
|
+
deferredName: (launch.resolve !== undefined ? resolveDeferred2 : launch.measure === undefined ? verifyDeferred2 : measureDeferred2)(launch.step).name,
|
|
1421
1425
|
...launch.revision === undefined ? undefined : { revision: launch.revision },
|
|
1422
1426
|
...launch.checks === undefined ? undefined : { checks: launch.checks },
|
|
1423
1427
|
...launch.suggested === undefined ? undefined : { suggested: launch.suggested },
|
|
1424
1428
|
...launch.rerunFailed === undefined ? undefined : { rerunFailed: launch.rerunFailed },
|
|
1425
|
-
...launch.measure === undefined ? undefined : { measure: launch.measure }
|
|
1429
|
+
...launch.measure === undefined ? undefined : { measure: launch.measure },
|
|
1430
|
+
...launch.resolve === undefined ? undefined : { resolve: launch.resolve }
|
|
1426
1431
|
})).pipe(Effect2.asVoid),
|
|
1427
1432
|
startAgentWork: (launch) => requested2(launch.step, capabilities.startAgentStep({
|
|
1428
1433
|
step: launch.step,
|
|
@@ -1648,7 +1653,8 @@ var rpcProgramPorts2 = (rpc, work) => {
|
|
|
1648
1653
|
...verification.checks === undefined ? undefined : { checks: [...verification.checks] },
|
|
1649
1654
|
...verification.suggested === undefined ? undefined : { suggested: [...verification.suggested] },
|
|
1650
1655
|
...verification.rerunFailed === undefined ? undefined : { rerunFailed: verification.rerunFailed },
|
|
1651
|
-
...verification.measure === undefined ? undefined : { measure: verification.measure }
|
|
1656
|
+
...verification.measure === undefined ? undefined : { measure: verification.measure },
|
|
1657
|
+
...verification.resolve === undefined ? undefined : { resolve: { revisions: [...verification.resolve.revisions] } }
|
|
1652
1658
|
}),
|
|
1653
1659
|
startAgentStep: ({ secrets, ...step }) => rpc.startAgentStep({ lease, ...step, ...secrets === undefined ? undefined : { secrets: [...secrets] } }),
|
|
1654
1660
|
awaitEvent: (wait) => rpc.awaitEvent({ lease, ...wait }),
|
|
@@ -3379,6 +3379,7 @@ var PipelineStatus2 = Schema20.Struct({
|
|
|
3379
3379
|
runnerChecks: Schema20.optionalKey(Schema20.Array(Schema20.String)),
|
|
3380
3380
|
approved: Schema20.optionalKey(Schema20.String),
|
|
3381
3381
|
repository: Schema20.optionalKey(Schema20.String),
|
|
3382
|
+
targetBranch: Schema20.optionalKey(Schema20.String),
|
|
3382
3383
|
conflicts: Schema20.optionalKey(Schema20.Boolean),
|
|
3383
3384
|
needsRebase: Schema20.optionalKey(Schema20.Boolean),
|
|
3384
3385
|
target: Schema20.optionalKey(Schema20.Struct({ branch: Schema20.String, head: Schema20.String, jobs: Schema20.Array(PipelineJob2) }))
|
|
@@ -3608,13 +3609,13 @@ var draftUpdate2 = (name, request) => hostActivity(name, "draft_update", "draft_
|
|
|
3608
3609
|
import * as ConfigProvider from "effect/ConfigProvider";
|
|
3609
3610
|
import * as Context3 from "effect/Context";
|
|
3610
3611
|
import * as Data2 from "effect/Data";
|
|
3611
|
-
import * as
|
|
3612
|
+
import * as Effect9 from "effect/Effect";
|
|
3612
3613
|
import * as Exit3 from "effect/Exit";
|
|
3613
3614
|
import * as Layer from "effect/Layer";
|
|
3614
3615
|
import * as Option2 from "effect/Option";
|
|
3615
3616
|
import * as Record12 from "effect/Record";
|
|
3616
3617
|
import * as Schema28 from "effect/Schema";
|
|
3617
|
-
import { DurableDeferred as
|
|
3618
|
+
import { DurableDeferred as DurableDeferred5, Workflow, WorkflowEngine } from "effect/workflow";
|
|
3618
3619
|
|
|
3619
3620
|
// packages/core/src/resource-claim.ts
|
|
3620
3621
|
import * as Schema21 from "effect/Schema";
|
|
@@ -3946,6 +3947,12 @@ var MeasureEvidence = Schema26.Struct({
|
|
|
3946
3947
|
head: MeasureSamples,
|
|
3947
3948
|
baseAgain: Schema26.optionalKey(MeasureSamples)
|
|
3948
3949
|
});
|
|
3950
|
+
var ResolveSpec = Schema26.Struct({
|
|
3951
|
+
revisions: Schema26.Array(Schema26.String.check(Schema26.isMinLength(1), Schema26.isMaxLength(240))).check(Schema26.isMinLength(1), Schema26.isMaxLength(10))
|
|
3952
|
+
});
|
|
3953
|
+
var ResolvedRevisions2 = Schema26.Struct({
|
|
3954
|
+
commits: Schema26.Array(Schema26.String.check(Schema26.isPattern(new RegExp("^[0-9a-f]{40}([0-9a-f]{24})?$", "u"))))
|
|
3955
|
+
});
|
|
3949
3956
|
var VerificationWorkUnit = Schema26.Struct({
|
|
3950
3957
|
kind: Schema26.Literal("verification"),
|
|
3951
3958
|
id: Id,
|
|
@@ -3958,6 +3965,7 @@ var VerificationWorkUnit = Schema26.Struct({
|
|
|
3958
3965
|
baseline: Schema26.optionalKey(Schema26.String.check(Schema26.isMinLength(1), Schema26.isMaxLength(300))),
|
|
3959
3966
|
checks: Schema26.Array(RepositoryCheck).check(Schema26.isMaxLength(50)),
|
|
3960
3967
|
measure: Schema26.optionalKey(MeasureSpec),
|
|
3968
|
+
resolve: Schema26.optionalKey(ResolveSpec),
|
|
3961
3969
|
hosts: Schema26.optionalKey(Schema26.Array(NetworkHost)),
|
|
3962
3970
|
storageOrigin: StorageOrigin
|
|
3963
3971
|
});
|
|
@@ -4006,7 +4014,8 @@ var TreeEvidence = Schema26.Struct({
|
|
|
4006
4014
|
var VerificationEvidence = Schema26.Struct({
|
|
4007
4015
|
head: TreeEvidence,
|
|
4008
4016
|
baseline: Schema26.optionalKey(TreeEvidence),
|
|
4009
|
-
measurement: Schema26.optionalKey(MeasureEvidence)
|
|
4017
|
+
measurement: Schema26.optionalKey(MeasureEvidence),
|
|
4018
|
+
resolved: Schema26.optionalKey(ResolvedRevisions2)
|
|
4010
4019
|
});
|
|
4011
4020
|
var BoundaryChange = Schema26.Struct({
|
|
4012
4021
|
kind: Schema26.Literal("change"),
|
|
@@ -4049,6 +4058,7 @@ var WorkUnitOutcome = Schema26.Struct({
|
|
|
4049
4058
|
evidence: Schema26.optionalKey(VerificationEvidence),
|
|
4050
4059
|
boundary: Schema26.optionalKey(BoundaryChange),
|
|
4051
4060
|
catchUp: Schema26.optionalKey(CatchUp),
|
|
4061
|
+
syncedTarget: Schema26.optionalKey(Revision),
|
|
4052
4062
|
harnessHold: Schema26.optionalKey(HarnessHold),
|
|
4053
4063
|
restart: Schema26.optionalKey(StepRestart),
|
|
4054
4064
|
failureSummary: Schema26.optionalKey(Schema26.String.check(Schema26.isMinLength(1), Schema26.isMaxLength(4000)))
|
|
@@ -4182,6 +4192,16 @@ var measure2 = (name, request) => takeStep2(name, "measure", "measure", Effect7.
|
|
|
4182
4192
|
});
|
|
4183
4193
|
}));
|
|
4184
4194
|
|
|
4195
|
+
// packages/sdk/src/loop/resolve.ts
|
|
4196
|
+
import * as Effect8 from "effect/Effect";
|
|
4197
|
+
import { DurableDeferred as DurableDeferred4 } from "effect/workflow";
|
|
4198
|
+
var resolveDeferred2 = (step) => DurableDeferred4.make(`resolve/${step}`, { success: ResolvedRevisions2, error: StepFailed2 });
|
|
4199
|
+
var resolveRevisions2 = (name, revisions) => takeStep2(name, "verify", "verify", Effect8.gen(function* () {
|
|
4200
|
+
const deferred = resolveDeferred2(name);
|
|
4201
|
+
yield* launch2(deferred, (host, token) => host.startVerification({ step: name, resolve: { revisions }, token }));
|
|
4202
|
+
return (yield* DurableDeferred4.await(deferred)).commits;
|
|
4203
|
+
}));
|
|
4204
|
+
|
|
4185
4205
|
// packages/sdk/src/loop/test-loop.ts
|
|
4186
4206
|
var LoopJournal2 = Schema28.Struct({
|
|
4187
4207
|
activities: Schema28.Record(Schema28.String, Schema28.Json),
|
|
@@ -4193,56 +4213,56 @@ class ScriptedFailure2 extends Data2.TaggedClass("ScriptedFailure") {
|
|
|
4193
4213
|
var scriptedFailure2 = (reason) => new ScriptedFailure2({ reason });
|
|
4194
4214
|
var defaultActivities = {
|
|
4195
4215
|
changeRequest: {
|
|
4196
|
-
run: () =>
|
|
4216
|
+
run: () => Effect9.succeed({ id: "change-request-1", number: "1", url: "test://change-requests/1" })
|
|
4197
4217
|
},
|
|
4198
|
-
writeBack: { run: () =>
|
|
4199
|
-
artifact: { run: (request) =>
|
|
4200
|
-
file: { run: (_request, step) =>
|
|
4201
|
-
note: { run: () =>
|
|
4202
|
-
comment: { run: () =>
|
|
4218
|
+
writeBack: { run: () => Effect9.void },
|
|
4219
|
+
artifact: { run: (request) => Effect9.succeed({ artifactId: request.title }) },
|
|
4220
|
+
file: { run: (_request, step) => Effect9.succeed({ id: `file-${step}` }) },
|
|
4221
|
+
note: { run: () => Effect9.void },
|
|
4222
|
+
comment: { run: () => Effect9.void },
|
|
4203
4223
|
createTasks: {
|
|
4204
|
-
run: (request) =>
|
|
4224
|
+
run: (request) => Effect9.succeed({ tasks: request.tickets.map((ticket) => ({ key: ticket.key, taskId: `task-${ticket.key}` })) })
|
|
4205
4225
|
},
|
|
4206
|
-
alertTask: { run: () =>
|
|
4226
|
+
alertTask: { run: () => Effect9.succeed({ taskId: "task-alert", created: true }) },
|
|
4207
4227
|
integrationBranch: {
|
|
4208
|
-
run: (request) =>
|
|
4228
|
+
run: (request) => Effect9.succeed({
|
|
4209
4229
|
repoBindingId: request.repoBindingId ?? "repo",
|
|
4210
4230
|
branch: "kitman/run/integration",
|
|
4211
4231
|
revision: "integration-head"
|
|
4212
4232
|
})
|
|
4213
4233
|
},
|
|
4214
4234
|
mergeChangeRequest: {
|
|
4215
|
-
run: (request) =>
|
|
4216
|
-
close: () =>
|
|
4217
|
-
rerun: () =>
|
|
4218
|
-
report: () =>
|
|
4219
|
-
approve: (request) =>
|
|
4235
|
+
run: (request) => Effect9.succeed({ status: "merged", revision: `merged-${request.changeRequestId}` }),
|
|
4236
|
+
close: () => Effect9.succeed({ closed: true }),
|
|
4237
|
+
rerun: () => Effect9.succeed({ head: "head", pipelines: 1 }),
|
|
4238
|
+
report: () => Effect9.succeed({ head: "head", status: "success" }),
|
|
4239
|
+
approve: (request) => Effect9.succeed({ approved: true, reviewId: `review-${request.changeRequestId}` })
|
|
4220
4240
|
},
|
|
4221
4241
|
release: {
|
|
4222
|
-
run: (request) =>
|
|
4242
|
+
run: (request) => Effect9.succeed({
|
|
4223
4243
|
tag: request.tag,
|
|
4224
4244
|
revision: request.revision ?? "base-head",
|
|
4225
4245
|
url: `test://releases/${request.tag}`
|
|
4226
4246
|
})
|
|
4227
4247
|
},
|
|
4228
|
-
transcripts: { run: () =>
|
|
4248
|
+
transcripts: { run: () => Effect9.succeed({ runs: [] }) },
|
|
4229
4249
|
changeRequestRead: {
|
|
4230
|
-
pipeline: () =>
|
|
4231
|
-
reviewThreads: () =>
|
|
4232
|
-
opened: () =>
|
|
4233
|
-
own: () =>
|
|
4250
|
+
pipeline: () => Effect9.succeed({ head: "head", status: "success", source: "forge", jobs: [], targetBranch: "main" }),
|
|
4251
|
+
reviewThreads: () => Effect9.succeed({ threads: [] }),
|
|
4252
|
+
opened: () => Effect9.succeed({ changeRequests: [] }),
|
|
4253
|
+
own: () => Effect9.succeed({ changeRequests: [] })
|
|
4234
4254
|
},
|
|
4235
|
-
propose: { run: (request, step) =>
|
|
4255
|
+
propose: { run: (request, step) => Effect9.succeed({ kind: request.kind, id: `${request.kind}-${step}` }) },
|
|
4236
4256
|
projectActivity: {
|
|
4237
|
-
run: (request) =>
|
|
4257
|
+
run: (request) => Effect9.succeed({ project: { id: request.projectId, name: request.projectId }, runs: [], taskChanges: [] })
|
|
4238
4258
|
},
|
|
4239
|
-
draftUpdate: { run: (_, step) =>
|
|
4259
|
+
draftUpdate: { run: (_, step) => Effect9.succeed({ id: `draft-${step}` }) }
|
|
4240
4260
|
};
|
|
4241
|
-
var withoutServices = (effect) =>
|
|
4261
|
+
var withoutServices = (effect) => Effect9.orDie(Effect9.provide(effect, Context3.empty()));
|
|
4242
4262
|
var deferredExit = (deferred) => Schema28.Exit(Schema28.toCodecJson(deferred.successSchema), Schema28.toCodecJson(deferred.errorSchema), Schema28.toCodecJson(Schema28.Defect()));
|
|
4243
4263
|
var journaled = (engine, journal, ran) => ({
|
|
4244
4264
|
...engine,
|
|
4245
|
-
activityExecute: (activity, attempt) =>
|
|
4265
|
+
activityExecute: (activity, attempt) => Effect9.gen(function* () {
|
|
4246
4266
|
const key = `${activity.name}/${attempt}`;
|
|
4247
4267
|
const recorded = journal.activities[key];
|
|
4248
4268
|
if (recorded !== undefined)
|
|
@@ -4256,7 +4276,7 @@ var journaled = (engine, journal, ran) => ({
|
|
|
4256
4276
|
}
|
|
4257
4277
|
return result;
|
|
4258
4278
|
}),
|
|
4259
|
-
deferredResult: (deferred) =>
|
|
4279
|
+
deferredResult: (deferred) => Effect9.gen(function* () {
|
|
4260
4280
|
const recorded = journal.deferreds[deferred.name];
|
|
4261
4281
|
if (recorded !== undefined)
|
|
4262
4282
|
return Option2.some(yield* withoutServices(Schema28.decodeEffect(Schema28.toCodecJson(deferredExit(deferred)))(recorded)));
|
|
@@ -4268,12 +4288,13 @@ var journaled = (engine, journal, ran) => ({
|
|
|
4268
4288
|
});
|
|
4269
4289
|
var scriptedExit = (scripted, failure) => scripted === undefined ? Exit3.fail(failure("nothing was scripted for this Step")) : scripted instanceof ScriptedFailure2 ? Exit3.fail(failure(scripted.reason)) : Exit3.succeed(scripted);
|
|
4270
4290
|
var scriptedHost = (script, engine, agentLaunches, childLaunches, waits, verifyLaunches) => {
|
|
4271
|
-
const resolve = (deferred, token, exit) =>
|
|
4291
|
+
const resolve = (deferred, token, exit) => DurableDeferred5.done(deferred, { token, exit }).pipe(Effect9.provideService(WorkflowEngine.WorkflowEngine, engine));
|
|
4272
4292
|
return {
|
|
4273
|
-
startAgentWork: (launch) =>
|
|
4293
|
+
startAgentWork: (launch) => Effect9.andThen(Effect9.sync(() => agentLaunches.push({
|
|
4274
4294
|
step: launch.step,
|
|
4275
4295
|
agent: launch.agent,
|
|
4276
4296
|
prompt: launch.prompt,
|
|
4297
|
+
output: launch.output,
|
|
4277
4298
|
...launch.skill === undefined ? undefined : { skill: launch.skill },
|
|
4278
4299
|
...launch.secrets === undefined ? undefined : { secrets: launch.secrets },
|
|
4279
4300
|
...launch.mergeTarget === undefined ? undefined : { mergeTarget: launch.mergeTarget }
|
|
@@ -4284,7 +4305,7 @@ var scriptedHost = (script, engine, agentLaunches, childLaunches, waits, verifyL
|
|
|
4284
4305
|
const answer = script.answers?.[launch.step] ?? auto ?? (attended ? undefined : launch.default);
|
|
4285
4306
|
return resolve(answerDeferred2(launch.step), launch.token, answer === undefined ? Exit3.fail(new StepFailed2({ step: launch.step, reason: "no answer was scripted" })) : Exit3.succeed(answer));
|
|
4286
4307
|
},
|
|
4287
|
-
admitChild: (launch) =>
|
|
4308
|
+
admitChild: (launch) => Effect9.andThen(Effect9.sync(() => childLaunches.push({
|
|
4288
4309
|
step: launch.step,
|
|
4289
4310
|
loop: launch.loop,
|
|
4290
4311
|
input: launch.input,
|
|
@@ -4301,9 +4322,17 @@ var scriptedHost = (script, engine, agentLaunches, childLaunches, waits, verifyL
|
|
|
4301
4322
|
});
|
|
4302
4323
|
return resolve(eventDeferred2(launch.step), launch.token, event === undefined ? Exit3.fail(new WaitTimedOut2({ step: launch.step, event: launch.event })) : Exit3.succeed(event));
|
|
4303
4324
|
},
|
|
4304
|
-
claimResource: (launch) =>
|
|
4325
|
+
claimResource: (launch) => Effect9.flatMap(script.claimed?.({ step: launch.step, resource: launch.resource, action: launch.action }) ?? Effect9.undefined, (settled) => launch.action === "let_go" ? resolve(letGoDeferred2(launch.step), launch.token, Exit3.succeed(null)) : resolve(claimDeferred2(launch.step), launch.token, Exit3.succeed(settled ?? script.claims?.[launch.step] ?? { status: "granted", resource: launch.resource }))),
|
|
4305
4326
|
startVerification: (launch) => {
|
|
4306
4327
|
const scripted = script.verifications?.[launch.step];
|
|
4328
|
+
if (launch.resolve !== undefined) {
|
|
4329
|
+
const commits = launch.resolve.revisions.map((revision) => {
|
|
4330
|
+
const scriptedCommit = script.commits?.[revision];
|
|
4331
|
+
return scriptedCommit === undefined ? madeUpCommit(revision) : scriptedCommit;
|
|
4332
|
+
});
|
|
4333
|
+
const unnamed = launch.resolve.revisions.filter((_, index) => commits[index] === null);
|
|
4334
|
+
return resolve(resolveDeferred2(launch.step), launch.token, unnamed.length > 0 ? Exit3.fail(new StepFailed2({ step: launch.step, reason: `No commit named ${unnamed.join(", ")}` })) : Exit3.succeed({ commits: commits.filter((commit) => commit !== null) }));
|
|
4335
|
+
}
|
|
4307
4336
|
if (launch.measure === undefined)
|
|
4308
4337
|
verifyLaunches.push({
|
|
4309
4338
|
step: launch.step,
|
|
@@ -4333,14 +4362,26 @@ var scriptedHost = (script, engine, agentLaunches, childLaunches, waits, verifyL
|
|
|
4333
4362
|
}
|
|
4334
4363
|
};
|
|
4335
4364
|
};
|
|
4365
|
+
var fullSha = /^[0-9a-f]{40}$/u;
|
|
4366
|
+
var madeUpCommit = (revision) => {
|
|
4367
|
+
if (fullSha.test(revision))
|
|
4368
|
+
return revision;
|
|
4369
|
+
const word = (seed) => {
|
|
4370
|
+
let hash = seed;
|
|
4371
|
+
for (const char of revision)
|
|
4372
|
+
hash = Math.imul(hash ^ char.charCodeAt(0), 16777619) >>> 0;
|
|
4373
|
+
return hash.toString(16).padStart(8, "0");
|
|
4374
|
+
};
|
|
4375
|
+
return [2166136261, 16777619, 1540483477, 668265263, 374761393].map(word).join("");
|
|
4376
|
+
};
|
|
4336
4377
|
var loopWorkflow2 = (loop) => Workflow.make(`kitman-loop/${loop.id}`, {
|
|
4337
4378
|
payload: { input: Schema28.Json },
|
|
4338
4379
|
idempotencyKey: () => loop.id,
|
|
4339
4380
|
success: loop.output,
|
|
4340
4381
|
error: Schema28.declare((_error) => true)
|
|
4341
4382
|
});
|
|
4342
|
-
var executeLoop2 = (loop, runtime) => ({ input }) =>
|
|
4343
|
-
const decoded = yield* Schema28.decodeEffect(Schema28.toCodecJson(loop.input))(input).pipe(
|
|
4383
|
+
var executeLoop2 = (loop, runtime) => ({ input }) => Effect9.gen(function* () {
|
|
4384
|
+
const decoded = yield* Schema28.decodeEffect(Schema28.toCodecJson(loop.input))(input).pipe(Effect9.mapError((error) => new InputInvalid2({ loop: loop.id, message: error.message })));
|
|
4344
4385
|
const run = LoopRun2.of({
|
|
4345
4386
|
loop: loop.id,
|
|
4346
4387
|
agents: loop.agents,
|
|
@@ -4350,7 +4391,7 @@ var executeLoop2 = (loop, runtime) => ({ input }) => Effect8.gen(function* () {
|
|
|
4350
4391
|
steps: []
|
|
4351
4392
|
});
|
|
4352
4393
|
runtime.onRun?.(run);
|
|
4353
|
-
return yield* loop.run(decoded).pipe(
|
|
4394
|
+
return yield* loop.run(decoded).pipe(Effect9.provideService(LoopRun2, run), Effect9.provideService(LoopHost2, runtime.host), Effect9.provideService(ChangeRequestActivity2, runtime.activities.changeRequest), Effect9.provideService(WriteBackActivity2, runtime.activities.writeBack), Effect9.provideService(ArtifactActivity2, runtime.activities.artifact), Effect9.provideService(FileActivity2, runtime.activities.file), Effect9.provideService(NoteActivity2, runtime.activities.note), Effect9.provideService(CommentActivity2, runtime.activities.comment), Effect9.provideService(CreateTasksActivity2, runtime.activities.createTasks), Effect9.provideService(AlertTaskActivity2, runtime.activities.alertTask), Effect9.provideService(IntegrationBranchActivity2, runtime.activities.integrationBranch), Effect9.provideService(MergeChangeRequestActivity2, runtime.activities.mergeChangeRequest), Effect9.provideService(ReleaseActivity2, runtime.activities.release), Effect9.provideService(TranscriptsActivity2, runtime.activities.transcripts), Effect9.provideService(ChangeRequestReadActivity2, runtime.activities.changeRequestRead), Effect9.provideService(ProposeActivity2, runtime.activities.propose), Effect9.provideService(ProjectActivityActivity2, runtime.activities.projectActivity), Effect9.provideService(DraftUpdateActivity2, runtime.activities.draftUpdate));
|
|
4354
4395
|
});
|
|
4355
4396
|
var testLoop2 = (loop, script) => {
|
|
4356
4397
|
const journal = {
|
|
@@ -4371,7 +4412,7 @@ var testLoop2 = (loop, script) => {
|
|
|
4371
4412
|
...overrides[key]
|
|
4372
4413
|
}));
|
|
4373
4414
|
const workflow = loopWorkflow2(loop);
|
|
4374
|
-
const execute = (payload) =>
|
|
4415
|
+
const execute = (payload) => Effect9.gen(function* () {
|
|
4375
4416
|
const engine = yield* WorkflowEngine.WorkflowEngine;
|
|
4376
4417
|
return yield* executeLoop2(loop, {
|
|
4377
4418
|
host: scriptedHost(script, engine, agentLaunches, childLaunches, waits, verifyLaunches),
|
|
@@ -4380,12 +4421,12 @@ var testLoop2 = (loop, script) => {
|
|
|
4380
4421
|
onRun: (run) => {
|
|
4381
4422
|
latestSteps = run.steps;
|
|
4382
4423
|
}
|
|
4383
|
-
})(payload).pipe(
|
|
4424
|
+
})(payload).pipe(Effect9.provideService(WorkflowEngine.WorkflowEngine, journaled(engine, journal, ran)));
|
|
4384
4425
|
});
|
|
4385
|
-
return
|
|
4386
|
-
const result = yield*
|
|
4426
|
+
return Effect9.gen(function* () {
|
|
4427
|
+
const result = yield* Effect9.exit(workflow.execute({ input: script.input }).pipe(Effect9.provideService(ConfigProvider.ConfigProvider, ConfigProvider.fromUnknown(script.secrets ?? {}))));
|
|
4387
4428
|
return { result, steps: latestSteps, journal, activities: ran, agentLaunches, childLaunches, waits, verifyLaunches };
|
|
4388
|
-
}).pipe(
|
|
4429
|
+
}).pipe(Effect9.provide(workflow.toLayer(execute).pipe(Layer.provideMerge(WorkflowEngine.layerMemory))));
|
|
4389
4430
|
};
|
|
4390
4431
|
// packages/sdk/src/loop/review.ts
|
|
4391
4432
|
import * as Schema29 from "effect/Schema";
|
|
@@ -4458,7 +4499,7 @@ var rallyStop2 = (input) => {
|
|
|
4458
4499
|
var sameIds = (left, right) => left.length === right.length && left.every((id) => right.includes(id));
|
|
4459
4500
|
// packages/sdk/src/loop/check.ts
|
|
4460
4501
|
import * as Cause2 from "effect/Cause";
|
|
4461
|
-
import * as
|
|
4502
|
+
import * as Effect10 from "effect/Effect";
|
|
4462
4503
|
import * as Exit5 from "effect/Exit";
|
|
4463
4504
|
import * as Predicate3 from "effect/Predicate";
|
|
4464
4505
|
import * as Schema30 from "effect/Schema";
|
|
@@ -4504,7 +4545,7 @@ class ReplayDiverged2 extends Schema30.TaggedError()("ReplayDiverged", {
|
|
|
4504
4545
|
}
|
|
4505
4546
|
}
|
|
4506
4547
|
var LoopCheckError2 = Schema30.Union([CheckFailed2, StepNamedTwice2, ReplayDiverged2]);
|
|
4507
|
-
var checkLoop2 = (loop, check) =>
|
|
4548
|
+
var checkLoop2 = (loop, check) => Effect10.gen(function* () {
|
|
4508
4549
|
const first = yield* testLoop2(loop, check.script);
|
|
4509
4550
|
if (Exit5.isFailure(first.result)) {
|
|
4510
4551
|
const error = Cause2.squash(first.result.cause);
|
|
@@ -4542,10 +4583,11 @@ var merged = {
|
|
|
4542
4583
|
settled: Schema31.Array(Schema31.String)
|
|
4543
4584
|
};
|
|
4544
4585
|
var SyncAnswer = Schema31.Union([UpToDate, Schema31.Struct(merged), Conflict]);
|
|
4586
|
+
var reported = { base: Schema31.optionalKey(Schema31.String) };
|
|
4545
4587
|
var BaseSync2 = Schema31.Union([
|
|
4546
|
-
UpToDate,
|
|
4547
|
-
Schema31.Struct({ ...merged, catchUp: Schema31.optionalKey(CatchUp) }),
|
|
4548
|
-
Conflict
|
|
4588
|
+
Schema31.Struct({ ...UpToDate.fields, ...reported }),
|
|
4589
|
+
Schema31.Struct({ ...merged, catchUp: Schema31.optionalKey(CatchUp), ...reported }),
|
|
4590
|
+
Schema31.Struct({ ...Conflict.fields, ...reported })
|
|
4549
4591
|
]);
|
|
4550
4592
|
var afterMerge = "One thing comes before any answer of merged, a clean merge included, and stopping above means stopping after it: before you answer merged, do what the repository's agent instructions say to do once the target branch is merged in, such as regenerating this branch's database migrations on top of the target's. Leave what that changes in the workspace: Kitman commits it.";
|
|
4551
4593
|
var prompt = (target) => [
|
|
@@ -4588,4 +4630,4 @@ var continuingBrief2 = (continuing) => [
|
|
|
4588
4630
|
"The ChangeRequest's description lists what was left unsettled; settle those first."
|
|
4589
4631
|
].join(`
|
|
4590
4632
|
`);
|
|
4591
|
-
export { Numeric, isWholeNumber, guard, Id, Timestamp, canonicalJson, KitDigest, unansweredQuestionReason2, isUnansweredQuestion2, LoopCapabilities2, LoopManifest, AgentDeclaration, KitDeclarations, LoopOutcome2, capabilitiesOf2, defineLoop2, ManifestInvalid2, jsonSchemaOf2, loopManifest2, questionAdvice, EvidenceCheck2, VerifyResult2, OutcomeTable2, failsOn2, testsNotRunReasons2, evidenceGate2, StepFailed2, OutputInvalid2, QuestionRefused2, WaitTimedOut2, ChangeRequestClosed2, ChildFailed2, CapabilityDenied2, DuplicateStep2, InputInvalid2, LoopEvent2, LoopRun2, LoopHost2, agentDeferredNamed2, agentWorkDeferred2, syncDeferred2, answerDeferred2, childDeferred2, eventDeferred2, verifyDeferred2, takeStep2, launch2, agentWork2, agentWorkAs2, agentWorkOnce2, ask2, call2, waitFor2, verify2, suggestVerification2, PlanTicket2, PlanTickets2, BlockingCycle2, planWaves2, ChangeRequestRequest2, ChangeRequestResult2, WriteBackMilestones2, WriteBackRequest2, RunFile2, FileRequest2, ArtifactRequest2, ArtifactResult2, NoteRequest2, CreateTasksRequest2, CreateTasksResult2, AlertTaskRequest2, AlertTaskResult2, IntegrationBranchRequest2, IntegrationBranch2, MergeChangeRequestRequest2, MergeResult2, ApproveChangeRequestRequest2, ApproveChangeRequestResult2, CloseChangeRequestRequest2, CloseChangeRequestResult2, RerunPipelineRequest2, RerunPipelineResult2, ReportPipelineRequest2, ReportPipelineResult2, CommentRequest2, ReleaseRequest2, ReleaseResult2, ChangeRequestReadRequest2, PipelineJob2, PipelineStatus2, ReviewThread2, ReviewThreads2, OpenChangeRequestsRequest2, OpenChangeRequest2, OpenChangeRequests2, OwnChangeRequest2, OwnChangeRequests2, TranscriptPoint2, TranscriptsRequest2, TranscriptsResult2, ProposeRequest2, ProposeResult2, ProjectActivityRequest2, ProjectActivityResult2, DraftUpdateRequest2, DraftUpdateResult2, ChangeRequestActivity2, WriteBackActivity2, ArtifactActivity2, FileActivity2, NoteActivity2, CommentActivity2, CreateTasksActivity2, AlertTaskActivity2, IntegrationBranchActivity2, MergeChangeRequestActivity2, ReleaseActivity2, TranscriptsActivity2, ProposeActivity2, ProjectActivityActivity2, DraftUpdateActivity2, ChangeRequestReadActivity2, changeRequest2, writeBack2, artifact2, file2, note2, comment2, createTasks2, alertTask2, integrationBranch2, mergeChangeRequest2, approveChangeRequest2, closeChangeRequest2, pipelineMoved2, rerunPipeline2, reportPipeline2, release2, transcripts2, propose2, projectActivity2, pipelineStatus2, reviewThreads2, openChangeRequests2, ownChangeRequests2, draftUpdate2, ResourceName, ClaimResult2, claimDeferred2, letGoDeferred2, claim2, letGo2, WorkUnitRepoBinding, ProgramWorkUnit, CheckName2, ApprovedCheck, MeasurePlan2, WorkUnitClaimResult, WorkUnitClaimInput, WorkUnitHeartbeatInput, WorkUnitHeartbeatResult, WorkUnitReleaseInput, WorkUnitCompletion, MetricStats2, MeasureVerdict2, Measurement2, measureDeferred2, noiseFloor2, judgeMeasurement2, measure2, LoopJournal2, ScriptedFailure2, scriptedFailure2, loopWorkflow2, executeLoop2, testLoop2, Severity2, Finding2, MergedFinding2, Rebuttal2, RebuttalVerdict2, ScopeJudgement2, isBlocking2, mergeFindings2, splitDisputed2, settleRound2, rallyStop2, CheckFailed2, StepNamedTwice2, ReplayDiverged2, LoopCheckError2, checkLoop2, defineKit2, BaseSync2, syncBase2, Continuing2, continuingBrief2 };
|
|
4633
|
+
export { Numeric, isWholeNumber, guard, Id, Timestamp, canonicalJson, KitDigest, unansweredQuestionReason2, isUnansweredQuestion2, LoopCapabilities2, LoopManifest, AgentDeclaration, KitDeclarations, LoopOutcome2, capabilitiesOf2, defineLoop2, ManifestInvalid2, jsonSchemaOf2, loopManifest2, questionAdvice, EvidenceCheck2, VerifyResult2, OutcomeTable2, failsOn2, testsNotRunReasons2, evidenceGate2, StepFailed2, OutputInvalid2, QuestionRefused2, WaitTimedOut2, ChangeRequestClosed2, ChildFailed2, CapabilityDenied2, DuplicateStep2, InputInvalid2, LoopEvent2, LoopRun2, LoopHost2, agentDeferredNamed2, agentWorkDeferred2, syncDeferred2, answerDeferred2, childDeferred2, eventDeferred2, verifyDeferred2, takeStep2, launch2, agentWork2, agentWorkAs2, agentWorkOnce2, ask2, call2, waitFor2, verify2, suggestVerification2, PlanTicket2, PlanTickets2, BlockingCycle2, planWaves2, ChangeRequestRequest2, ChangeRequestResult2, WriteBackMilestones2, WriteBackRequest2, RunFile2, FileRequest2, ArtifactRequest2, ArtifactResult2, NoteRequest2, CreateTasksRequest2, CreateTasksResult2, AlertTaskRequest2, AlertTaskResult2, IntegrationBranchRequest2, IntegrationBranch2, MergeChangeRequestRequest2, MergeResult2, ApproveChangeRequestRequest2, ApproveChangeRequestResult2, CloseChangeRequestRequest2, CloseChangeRequestResult2, RerunPipelineRequest2, RerunPipelineResult2, ReportPipelineRequest2, ReportPipelineResult2, CommentRequest2, ReleaseRequest2, ReleaseResult2, ChangeRequestReadRequest2, PipelineJob2, PipelineStatus2, ReviewThread2, ReviewThreads2, OpenChangeRequestsRequest2, OpenChangeRequest2, OpenChangeRequests2, OwnChangeRequest2, OwnChangeRequests2, TranscriptPoint2, TranscriptsRequest2, TranscriptsResult2, ProposeRequest2, ProposeResult2, ProjectActivityRequest2, ProjectActivityResult2, DraftUpdateRequest2, DraftUpdateResult2, ChangeRequestActivity2, WriteBackActivity2, ArtifactActivity2, FileActivity2, NoteActivity2, CommentActivity2, CreateTasksActivity2, AlertTaskActivity2, IntegrationBranchActivity2, MergeChangeRequestActivity2, ReleaseActivity2, TranscriptsActivity2, ProposeActivity2, ProjectActivityActivity2, DraftUpdateActivity2, ChangeRequestReadActivity2, changeRequest2, writeBack2, artifact2, file2, note2, comment2, createTasks2, alertTask2, integrationBranch2, mergeChangeRequest2, approveChangeRequest2, closeChangeRequest2, pipelineMoved2, rerunPipeline2, reportPipeline2, release2, transcripts2, propose2, projectActivity2, pipelineStatus2, reviewThreads2, openChangeRequests2, ownChangeRequests2, draftUpdate2, ResourceName, ClaimResult2, claimDeferred2, letGoDeferred2, claim2, letGo2, WorkUnitRepoBinding, ProgramWorkUnit, CheckName2, ApprovedCheck, MeasurePlan2, ResolveSpec, ResolvedRevisions2, WorkUnitClaimResult, WorkUnitClaimInput, WorkUnitHeartbeatInput, WorkUnitHeartbeatResult, WorkUnitReleaseInput, WorkUnitCompletion, MetricStats2, MeasureVerdict2, Measurement2, measureDeferred2, noiseFloor2, judgeMeasurement2, measure2, resolveDeferred2, resolveRevisions2, LoopJournal2, ScriptedFailure2, scriptedFailure2, loopWorkflow2, executeLoop2, testLoop2, Severity2, Finding2, MergedFinding2, Rebuttal2, RebuttalVerdict2, ScopeJudgement2, isBlocking2, mergeFindings2, splitDisputed2, settleRound2, rallyStop2, CheckFailed2, StepNamedTwice2, ReplayDiverged2, LoopCheckError2, checkLoop2, defineKit2, BaseSync2, syncBase2, Continuing2, continuingBrief2 };
|
package/dist/loop/index.js
CHANGED
|
@@ -142,6 +142,7 @@ import {
|
|
|
142
142
|
letGo2,
|
|
143
143
|
CheckName2,
|
|
144
144
|
MeasurePlan2,
|
|
145
|
+
ResolvedRevisions2,
|
|
145
146
|
MetricStats2,
|
|
146
147
|
MeasureVerdict2,
|
|
147
148
|
Measurement2,
|
|
@@ -149,6 +150,8 @@ import {
|
|
|
149
150
|
noiseFloor2,
|
|
150
151
|
judgeMeasurement2,
|
|
151
152
|
measure2,
|
|
153
|
+
resolveDeferred2,
|
|
154
|
+
resolveRevisions2,
|
|
152
155
|
LoopJournal2,
|
|
153
156
|
ScriptedFailure2,
|
|
154
157
|
scriptedFailure2,
|
|
@@ -176,7 +179,7 @@ import {
|
|
|
176
179
|
syncBase2,
|
|
177
180
|
Continuing2,
|
|
178
181
|
continuingBrief2
|
|
179
|
-
} from "../chunk-
|
|
182
|
+
} from "../chunk-cqknxyv9.js";
|
|
180
183
|
export {
|
|
181
184
|
AlertTaskActivity2 as AlertTaskActivity,
|
|
182
185
|
AlertTaskRequest2 as AlertTaskRequest,
|
|
@@ -265,6 +268,7 @@ export {
|
|
|
265
268
|
ReportPipelineResult2 as ReportPipelineResult,
|
|
266
269
|
RerunPipelineRequest2 as RerunPipelineRequest,
|
|
267
270
|
RerunPipelineResult2 as RerunPipelineResult,
|
|
271
|
+
ResolvedRevisions2 as ResolvedRevisions,
|
|
268
272
|
ReviewThread2 as ReviewThread,
|
|
269
273
|
ReviewThreads2 as ReviewThreads,
|
|
270
274
|
RunFile2 as RunFile,
|
|
@@ -338,6 +342,8 @@ export {
|
|
|
338
342
|
release2 as release,
|
|
339
343
|
reportPipeline2 as reportPipeline,
|
|
340
344
|
rerunPipeline2 as rerunPipeline,
|
|
345
|
+
resolveDeferred2 as resolveDeferred,
|
|
346
|
+
resolveRevisions2 as resolveRevisions,
|
|
341
347
|
reviewThreads2 as reviewThreads,
|
|
342
348
|
scriptedFailure2 as scriptedFailure,
|
|
343
349
|
settleRound2 as settleRound,
|
package/dist/program/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import"../chunk-
|
|
2
|
+
import"../chunk-cqknxyv9.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-3pz068kn.js";
|
|
21
21
|
export {
|
|
22
22
|
Described2 as Described,
|
|
23
23
|
JournalWriteFailed2 as JournalWriteFailed,
|
package/package.json
CHANGED
|
@@ -150,6 +150,8 @@ export declare const RunnerCapabilities: Schema.Struct<{
|
|
|
150
150
|
}>>;
|
|
151
151
|
/** It benchmarks a verification's measure; a Runner without it is offered none, as one from before measures was. */
|
|
152
152
|
readonly measure: Schema.optionalKey<Schema.Boolean>;
|
|
153
|
+
/** It resolves a verification's revisions to commits; a Runner without it is offered none. */
|
|
154
|
+
readonly resolve: Schema.optionalKey<Schema.Boolean>;
|
|
153
155
|
}>;
|
|
154
156
|
export declare const Runner: Schema.Struct<{
|
|
155
157
|
readonly id: Schema.String;
|
|
@@ -261,6 +263,8 @@ export declare const Runner: Schema.Struct<{
|
|
|
261
263
|
}>>;
|
|
262
264
|
/** It benchmarks a verification's measure; a Runner without it is offered none, as one from before measures was. */
|
|
263
265
|
readonly measure: Schema.optionalKey<Schema.Boolean>;
|
|
266
|
+
/** It resolves a verification's revisions to commits; a Runner without it is offered none. */
|
|
267
|
+
readonly resolve: Schema.optionalKey<Schema.Boolean>;
|
|
264
268
|
}>;
|
|
265
269
|
/** The owner's choice of default Harness; `capabilities.defaultHarness` is the one in effect. */
|
|
266
270
|
readonly preferredHarness: Schema.optionalKey<Schema.Literals<readonly ["pi", "claude", "codex"]>>;
|
|
@@ -603,6 +607,8 @@ export declare const RunnerCreate: Schema.Struct<{
|
|
|
603
607
|
}>>;
|
|
604
608
|
/** It benchmarks a verification's measure; a Runner without it is offered none, as one from before measures was. */
|
|
605
609
|
readonly measure: Schema.optionalKey<Schema.Boolean>;
|
|
610
|
+
/** It resolves a verification's revisions to commits; a Runner without it is offered none. */
|
|
611
|
+
readonly resolve: Schema.optionalKey<Schema.Boolean>;
|
|
606
612
|
}>>;
|
|
607
613
|
readonly labels: Schema.optionalKey<Schema.$Array<Schema.String>>;
|
|
608
614
|
}>;
|
|
@@ -720,6 +726,8 @@ export declare const RunnerRegistrationResult: Schema.Struct<{
|
|
|
720
726
|
}>>;
|
|
721
727
|
/** It benchmarks a verification's measure; a Runner without it is offered none, as one from before measures was. */
|
|
722
728
|
readonly measure: Schema.optionalKey<Schema.Boolean>;
|
|
729
|
+
/** It resolves a verification's revisions to commits; a Runner without it is offered none. */
|
|
730
|
+
readonly resolve: Schema.optionalKey<Schema.Boolean>;
|
|
723
731
|
}>;
|
|
724
732
|
/** The owner's choice of default Harness; `capabilities.defaultHarness` is the one in effect. */
|
|
725
733
|
readonly preferredHarness: Schema.optionalKey<Schema.Literals<readonly ["pi", "claude", "codex"]>>;
|
|
@@ -833,6 +841,8 @@ export declare const RunnerHeartbeatInput: Schema.Struct<{
|
|
|
833
841
|
}>>;
|
|
834
842
|
/** It benchmarks a verification's measure; a Runner without it is offered none, as one from before measures was. */
|
|
835
843
|
readonly measure: Schema.optionalKey<Schema.Boolean>;
|
|
844
|
+
/** It resolves a verification's revisions to commits; a Runner without it is offered none. */
|
|
845
|
+
readonly resolve: Schema.optionalKey<Schema.Boolean>;
|
|
836
846
|
}>>;
|
|
837
847
|
readonly labels: Schema.optionalKey<Schema.$Array<Schema.String>>;
|
|
838
848
|
}>;
|
|
@@ -912,6 +922,8 @@ export declare const RunnerCapabilitiesUpdate: Schema.Struct<{
|
|
|
912
922
|
}>>;
|
|
913
923
|
/** It benchmarks a verification's measure; a Runner without it is offered none, as one from before measures was. */
|
|
914
924
|
readonly measure: Schema.optionalKey<Schema.Boolean>;
|
|
925
|
+
/** It resolves a verification's revisions to commits; a Runner without it is offered none. */
|
|
926
|
+
readonly resolve: Schema.optionalKey<Schema.Boolean>;
|
|
915
927
|
}>;
|
|
916
928
|
readonly labels: Schema.optionalKey<Schema.$Array<Schema.String>>;
|
|
917
929
|
}>;
|
|
@@ -1604,6 +1616,8 @@ export declare const RunnerOperationsOverview: Schema.Struct<{
|
|
|
1604
1616
|
}>>;
|
|
1605
1617
|
/** It benchmarks a verification's measure; a Runner without it is offered none, as one from before measures was. */
|
|
1606
1618
|
readonly measure: Schema.optionalKey<Schema.Boolean>;
|
|
1619
|
+
/** It resolves a verification's revisions to commits; a Runner without it is offered none. */
|
|
1620
|
+
readonly resolve: Schema.optionalKey<Schema.Boolean>;
|
|
1607
1621
|
}>;
|
|
1608
1622
|
/** The owner's choice of default Harness; `capabilities.defaultHarness` is the one in effect. */
|
|
1609
1623
|
readonly preferredHarness: Schema.optionalKey<Schema.Literals<readonly ["pi", "claude", "codex"]>>;
|
|
@@ -1834,6 +1848,8 @@ export declare const RunnerOperationsLiveSnapshot: Schema.Struct<{
|
|
|
1834
1848
|
}>>;
|
|
1835
1849
|
/** It benchmarks a verification's measure; a Runner without it is offered none, as one from before measures was. */
|
|
1836
1850
|
readonly measure: Schema.optionalKey<Schema.Boolean>;
|
|
1851
|
+
/** It resolves a verification's revisions to commits; a Runner without it is offered none. */
|
|
1852
|
+
readonly resolve: Schema.optionalKey<Schema.Boolean>;
|
|
1837
1853
|
}>;
|
|
1838
1854
|
/** The owner's choice of default Harness; `capabilities.defaultHarness` is the one in effect. */
|
|
1839
1855
|
readonly preferredHarness: Schema.optionalKey<Schema.Literals<readonly ["pi", "claude", "codex"]>>;
|
|
@@ -2635,6 +2651,8 @@ export declare const RunnerList: Schema.Struct<{
|
|
|
2635
2651
|
}>>;
|
|
2636
2652
|
/** It benchmarks a verification's measure; a Runner without it is offered none, as one from before measures was. */
|
|
2637
2653
|
readonly measure: Schema.optionalKey<Schema.Boolean>;
|
|
2654
|
+
/** It resolves a verification's revisions to commits; a Runner without it is offered none. */
|
|
2655
|
+
readonly resolve: Schema.optionalKey<Schema.Boolean>;
|
|
2638
2656
|
}>;
|
|
2639
2657
|
/** The owner's choice of default Harness; `capabilities.defaultHarness` is the one in effect. */
|
|
2640
2658
|
readonly preferredHarness: Schema.optionalKey<Schema.Literals<readonly ["pi", "claude", "codex"]>>;
|
|
@@ -48,8 +48,7 @@ export declare function programStepContext(input: {
|
|
|
48
48
|
readonly steering?: readonly string[];
|
|
49
49
|
}): string | undefined;
|
|
50
50
|
/**
|
|
51
|
-
* The skill the Step runs, then the program's prompt, then the Kitman tools every Step has:
|
|
52
|
-
* asking, files and skills.
|
|
51
|
+
* The skill the Step runs, then the program's prompt, then the Kitman tools every Step has: asking, files and skills.
|
|
53
52
|
*/
|
|
54
53
|
export declare const programStepInstruction: (prompt: string, options?: {
|
|
55
54
|
readonly missingSkills?: readonly string[];
|