@kitman-sh/sdk 0.10.76 → 0.10.78

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.
@@ -4,7 +4,7 @@ import {
4
4
  KitDigest,
5
5
  AgentDeclaration,
6
6
  KitDeclarations
7
- } from "../chunk-08qcgk73.js";
7
+ } from "../chunk-r609bz8q.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-epczfxnt.js";
16
+ } from "../chunk-7tbysqtf.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-08qcgk73.js";
36
+ } from "./chunk-r609bz8q.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", {
@@ -1054,6 +1057,8 @@ class RunnerCapabilityRpcs extends RpcGroup.make(Rpc.make("PutQuestion", {
1054
1057
  runnerChecks: Schema7.optionalKey(Schema7.Array(Schema7.String)),
1055
1058
  approved: Schema7.optionalKey(Schema7.String),
1056
1059
  repository: Schema7.optionalKey(Schema7.String),
1060
+ conflicts: Schema7.optionalKey(Schema7.Boolean),
1061
+ needsRebase: Schema7.optionalKey(Schema7.Boolean),
1057
1062
  target: Schema7.optionalKey(Schema7.Struct({
1058
1063
  branch: Schema7.String,
1059
1064
  head: Schema7.String,
@@ -1407,6 +1412,7 @@ var runnerHost = (capabilities) => ({
1407
1412
  ...launch.verification === undefined ? undefined : { verification: launch.verification },
1408
1413
  ...launch.default === undefined ? undefined : { default: launch.default },
1409
1414
  ...launch.auto === undefined ? undefined : { auto: launch.auto },
1415
+ ...launch.unattendedAuto === undefined ? undefined : { unattendedAuto: launch.unattendedAuto },
1410
1416
  ...launch.timeoutMillis === undefined ? undefined : { timeoutMillis: launch.timeoutMillis }
1411
1417
  })).pipe(Effect2.asVoid),
1412
1418
  startVerification: (launch) => requested2(launch.step, capabilities.startVerification({
@@ -1434,6 +1440,7 @@ var runnerHost = (capabilities) => ({
1434
1440
  step: launch.step,
1435
1441
  loop: launch.loop,
1436
1442
  input: launch.input,
1443
+ ...launch.constraints === undefined ? undefined : { constraints: launch.constraints },
1437
1444
  deferredName: childDeferred2(launch.step).name
1438
1445
  })).pipe(Effect2.asVoid),
1439
1446
  claimResource: (launch) => requested2(launch.step, capabilities.claimResource({
@@ -1630,6 +1637,7 @@ var rpcProgramPorts2 = (rpc, work) => {
1630
1637
  ...question.verification === undefined ? undefined : { verification: question.verification },
1631
1638
  ...question.default === undefined ? undefined : { default: question.default },
1632
1639
  ...question.auto === undefined ? undefined : { auto: question.auto },
1640
+ ...question.unattendedAuto === undefined ? undefined : { unattendedAuto: question.unattendedAuto },
1633
1641
  ...question.timeoutMillis === undefined ? undefined : { timeoutMillis: question.timeoutMillis }
1634
1642
  }),
1635
1643
  startVerification: (verification) => rpc.startVerification({
@@ -1645,7 +1653,11 @@ var rpcProgramPorts2 = (rpc, work) => {
1645
1653
  startAgentStep: ({ secrets, ...step }) => rpc.startAgentStep({ lease, ...step, ...secrets === undefined ? undefined : { secrets: [...secrets] } }),
1646
1654
  awaitEvent: (wait) => rpc.awaitEvent({ lease, ...wait }),
1647
1655
  claimResource: (claim) => rpc.claimResource({ lease, ...claim }),
1648
- admitChild: (child) => rpc.admitChild({ lease, ...child }),
1656
+ admitChild: ({ constraints, ...child }) => rpc.admitChild({
1657
+ lease,
1658
+ ...child,
1659
+ ...constraints === undefined ? undefined : { constraints: [...constraints] }
1660
+ }),
1649
1661
  storeArtifact: ({ fileIds, ...artifact }) => rpc.storeArtifact({ lease, ...artifact, ...fileIds === undefined ? undefined : { fileIds: [...fileIds] } }),
1650
1662
  ...rpcRunFiles2(rpc, lease),
1651
1663
  recordNote: (note) => rpc.recordNote({ lease, ...note }),
@@ -1552,6 +1552,12 @@ var LoopSafeReferenceString = Schema12.String.check(Schema12.isMinLength(1), Sch
1552
1552
  var LoopSafeInternalReferenceString = Schema12.String.check(Schema12.isMinLength(1), Schema12.isMaxLength(240), Schema12.isPattern(new RegExp(LoopSafeInternalReferencePattern, "u")));
1553
1553
  var LoopSafeText = Schema12.String.check(Schema12.isMaxLength(4000), Schema12.isPattern(new RegExp(`^(?![\\s\\S]*(?:${LoopCredentialContentPattern}|[A-Za-z][A-Za-z0-9+.-]*://(?:[^\\s/?#]*@|[^\\s?#]*\\?)))[\\s\\S]*$`, "u")));
1554
1554
  var recommendedDefault = (recommended) => recommended !== undefined && Schema12.is(LoopSafeText)(recommended) ? recommended : undefined;
1555
+ var unansweredQuestionLead = "Nobody answers in full auto, and the agent's Question has no answer to take";
1556
+ var unansweredQuestionReason2 = (prompt) => {
1557
+ const reason = `${unansweredQuestionLead}: ${prompt}`.slice(0, 4000);
1558
+ return Schema12.is(LoopSafeText)(reason) ? reason : `${unansweredQuestionLead}; its text is on the Run`;
1559
+ };
1560
+ var isUnansweredQuestion2 = (reason) => reason.startsWith(unansweredQuestionLead);
1555
1561
  var QuestionText = Schema12.String;
1556
1562
  var LoopSafeOutputDataString = Schema12.String.check(Schema12.isMaxLength(4000), Schema12.isPattern(new RegExp(LoopSafeInternalReferencePattern, "u")));
1557
1563
  var LoopSafePackageName = Schema12.String.check(Schema12.isMinLength(1), Schema12.isMaxLength(200), Schema12.isPattern(new RegExp(LoopSafeReferencePattern, "u")));
@@ -3006,6 +3012,8 @@ var ask2 = (name, question) => takeStep2(name, "ask", "ask", Effect3.gen(functio
3006
3012
  return yield* new QuestionRefused2({ step: name, answer: fallback, options });
3007
3013
  if (question.auto !== undefined && options !== undefined && !options.includes(question.auto))
3008
3014
  return yield* new QuestionRefused2({ step: name, answer: question.auto, options });
3015
+ if (question.unattendedAuto !== undefined && options !== undefined && !options.includes(question.unattendedAuto))
3016
+ return yield* new QuestionRefused2({ step: name, answer: question.unattendedAuto, options });
3009
3017
  yield* launch2(deferred, (host, token) => host.putQuestion({
3010
3018
  step: name,
3011
3019
  prompt: question.prompt,
@@ -3013,6 +3021,7 @@ var ask2 = (name, question) => takeStep2(name, "ask", "ask", Effect3.gen(functio
3013
3021
  ...advice,
3014
3022
  ...fallback === undefined ? undefined : { default: fallback },
3015
3023
  ...question.auto === undefined ? undefined : { auto: question.auto },
3024
+ ...question.unattendedAuto === undefined ? undefined : { unattendedAuto: question.unattendedAuto },
3016
3025
  ...question.timeout === undefined ? undefined : { timeoutMillis: Duration.toMillis(Duration.fromInputUnsafe(question.timeout)) },
3017
3026
  token
3018
3027
  }));
@@ -3025,10 +3034,17 @@ var ask2 = (name, question) => takeStep2(name, "ask", "ask", Effect3.gen(functio
3025
3034
  return yield* new QuestionRefused2({ step: name, answer, options });
3026
3035
  return offeredAnswer;
3027
3036
  }));
3028
- var call2 = (name, loop, input) => takeStep2(name, "call", "call", Effect3.gen(function* () {
3037
+ var call2 = (name, loop, input, options) => takeStep2(name, "call", "call", Effect3.gen(function* () {
3029
3038
  const deferred = childDeferred2(name);
3030
3039
  const encoded = yield* toJson(name, loop.input, input);
3031
- yield* launch2(deferred, (host, token) => host.admitChild({ step: name, loop: loop.id, input: encoded, token }));
3040
+ const constraints = options?.constraints ?? [];
3041
+ yield* launch2(deferred, (host, token) => host.admitChild({
3042
+ step: name,
3043
+ loop: loop.id,
3044
+ input: encoded,
3045
+ ...constraints.length === 0 ? undefined : { constraints },
3046
+ token
3047
+ }));
3032
3048
  const result = yield* DurableDeferred.await(deferred);
3033
3049
  return yield* Schema17.decodeEffect(Schema17.toCodecJson(loop.output))(result).pipe(Effect3.mapError((error) => new ChildFailed2({ step: name, loop: loop.id, reason: error.message })));
3034
3050
  }));
@@ -3171,7 +3187,11 @@ var ArtifactRequest2 = Schema19.Struct({
3171
3187
  files: Schema19.optional(Schema19.Array(RunFile2))
3172
3188
  });
3173
3189
  var ArtifactResult2 = Schema19.Struct({ artifactId: Schema19.String });
3174
- var NoteRequest2 = Schema19.Struct({ text: Schema19.String, artifactId: Schema19.optional(Schema19.String) });
3190
+ var NoteRequest2 = Schema19.Struct({
3191
+ text: Schema19.String,
3192
+ artifactId: Schema19.optional(Schema19.String),
3193
+ kind: Schema19.optional(Schema19.Literals(["note", "blocker"]))
3194
+ });
3175
3195
  var CreateTasksRequest2 = Schema19.Struct({
3176
3196
  tickets: Schema19.Array(PlanTicket2),
3177
3197
  projectId: Schema19.optionalKey(Schema19.String)
@@ -3271,6 +3291,8 @@ var PipelineStatus2 = Schema19.Struct({
3271
3291
  runnerChecks: Schema19.optionalKey(Schema19.Array(Schema19.String)),
3272
3292
  approved: Schema19.optionalKey(Schema19.String),
3273
3293
  repository: Schema19.optionalKey(Schema19.String),
3294
+ conflicts: Schema19.optionalKey(Schema19.Boolean),
3295
+ needsRebase: Schema19.optionalKey(Schema19.Boolean),
3274
3296
  target: Schema19.optionalKey(Schema19.Struct({ branch: Schema19.String, head: Schema19.String, jobs: Schema19.Array(PipelineJob2) }))
3275
3297
  });
3276
3298
  var ReviewThread2 = Schema19.Struct({
@@ -4197,10 +4219,17 @@ var scriptedHost = (script, engine, agentLaunches, childLaunches, waits, verifyL
4197
4219
  ...launch.mergeTarget === undefined ? undefined : { mergeTarget: launch.mergeTarget }
4198
4220
  })), resolve(agentDeferredNamed2(launch.deferredName), launch.token, scriptedExit(script.outputs?.[launch.step], (reason) => new StepFailed2({ step: launch.step, reason })))),
4199
4221
  putQuestion: (launch) => {
4200
- const answer = script.answers?.[launch.step] ?? (script.fullAuto === true ? launch.auto : undefined) ?? launch.default;
4222
+ const attended = script.attended === true;
4223
+ const auto = script.fullAuto === true ? launch.auto ?? (attended ? undefined : launch.unattendedAuto) : undefined;
4224
+ const answer = script.answers?.[launch.step] ?? auto ?? (attended ? undefined : launch.default);
4201
4225
  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
4226
  },
4203
- admitChild: (launch) => Effect8.andThen(Effect8.sync(() => childLaunches.push({ step: launch.step, loop: launch.loop, input: launch.input })), resolve(childDeferred2(launch.step), launch.token, scriptedExit(script.children?.[launch.step], (reason) => new ChildFailed2({ step: launch.step, loop: launch.loop, reason })))),
4227
+ admitChild: (launch) => Effect8.andThen(Effect8.sync(() => childLaunches.push({
4228
+ step: launch.step,
4229
+ loop: launch.loop,
4230
+ input: launch.input,
4231
+ ...launch.constraints === undefined ? undefined : { constraints: launch.constraints }
4232
+ })), resolve(childDeferred2(launch.step), launch.token, scriptedExit(script.children?.[launch.step], (reason) => new ChildFailed2({ step: launch.step, loop: launch.loop, reason })))),
4204
4233
  awaitEvent: (launch) => {
4205
4234
  const event = script.events?.[launch.step];
4206
4235
  waits.push({
@@ -4499,4 +4528,4 @@ var continuingBrief2 = (continuing) => [
4499
4528
  "The ChangeRequest's description lists what was left unsettled; settle those first."
4500
4529
  ].join(`
4501
4530
  `);
4502
- export { Numeric, isWholeNumber, guard, Id, Timestamp, canonicalJson, KitDigest, 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 };
4531
+ 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 };
@@ -1,5 +1,7 @@
1
1
  // @bun
2
2
  import {
3
+ unansweredQuestionReason2,
4
+ isUnansweredQuestion2,
3
5
  LoopCapabilities2,
4
6
  LoopOutcome2,
5
7
  capabilitiesOf2,
@@ -174,7 +176,7 @@ import {
174
176
  syncBase2,
175
177
  Continuing2,
176
178
  continuingBrief2
177
- } from "../chunk-08qcgk73.js";
179
+ } from "../chunk-r609bz8q.js";
178
180
  export {
179
181
  AlertTaskActivity2 as AlertTaskActivity,
180
182
  AlertTaskRequest2 as AlertTaskRequest,
@@ -311,6 +313,7 @@ export {
311
313
  file2 as file,
312
314
  integrationBranch2 as integrationBranch,
313
315
  isBlocking2 as isBlocking,
316
+ isUnansweredQuestion2 as isUnansweredQuestion,
314
317
  jsonSchemaOf2 as jsonSchemaOf,
315
318
  judgeMeasurement2 as judgeMeasurement,
316
319
  launch2 as launch,
@@ -346,6 +349,7 @@ export {
346
349
  testLoop2 as testLoop,
347
350
  testsNotRunReasons2 as testsNotRunReasons,
348
351
  transcripts2 as transcripts,
352
+ unansweredQuestionReason2 as unansweredQuestionReason,
349
353
  verify2 as verify,
350
354
  verifyDeferred2 as verifyDeferred,
351
355
  waitFor2 as waitFor,
@@ -1,5 +1,5 @@
1
1
  // @bun
2
- import"../chunk-08qcgk73.js";
2
+ import"../chunk-r609bz8q.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-epczfxnt.js";
20
+ } from "../chunk-7tbysqtf.js";
21
21
  export {
22
22
  Described2 as Described,
23
23
  JournalWriteFailed2 as JournalWriteFailed,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kitman-sh/sdk",
3
- "version": "0.10.76",
3
+ "version": "0.10.78",
4
4
  "type": "module",
5
5
  "license": "UNLICENSED",
6
6
  "exports": {
@@ -16,6 +16,10 @@ export declare const LoopSourceMode: Schema.Literals<readonly ["direct", "git_ba
16
16
  export declare const LoopCapabilityKind: Schema.Literals<readonly ["read_task", "read_repo_binding", "read_agent_environment", "read_kit", "update_task_status", "read_change_request", "read_change_request_review", "read_task_link", "refresh_change_request_metadata", "record_change_request_review", "record_session_update", "create_task_link", "create_task_dependency", "create_task_asset", "create_follow_up_task", "execute_agent", "read_step_attempt", "record_task_thread_entry", "write_provider_repository", "write_provider_change_request", "publish_provider_check", "write_provider_comment", "request_provider_changes", "approve_provider_change_request", "merge_provider_change_request", "wait_for_event", "request_human_approval", "execute_package_ref", "read_context_feedback", "read_session_update", "read_repo_binding", "read_agent_environment", "read_kit", "read_memory", "read_decision", "create_task_dependency", "propose_memory", "propose_kit", "propose_decision", "propose_agent_environment_policy", "propose_team_context", "propose_context_relevance", "execute_runner_sandbox"]>;
17
17
  /** A Question's recommendation as its default, when it can be stored as one: a default must be LoopSafeText. */
18
18
  export declare const recommendedDefault: (recommended: string | undefined) => string | undefined;
19
+ /** Why an agent Step ended on a Question in full auto that has neither a default nor a recommendation to take. */
20
+ export declare const unansweredQuestionReason: (prompt: string) => string;
21
+ /** Whether a Step failed because its agent asked a Question in full auto that nothing could answer. */
22
+ export declare const isUnansweredQuestion: (reason: string) => boolean;
19
23
  export declare const LoopDataSchemaRef: Schema.Struct<{
20
24
  readonly kind: Schema.Literal<"typebox_ref">;
21
25
  readonly name: Schema.String;
@@ -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;
@@ -1728,6 +1731,8 @@ export declare const makeProgramRpcClient: (options: ConnectionOptions) => Effec
1728
1731
  readonly runnerChecks?: readonly string[];
1729
1732
  readonly approved?: string;
1730
1733
  readonly repository?: string;
1734
+ readonly conflicts?: boolean;
1735
+ readonly needsRebase?: boolean;
1731
1736
  readonly target?: {
1732
1737
  readonly branch: string;
1733
1738
  readonly head: string;
@@ -1752,6 +1757,8 @@ export declare const makeProgramRpcClient: (options: ConnectionOptions) => Effec
1752
1757
  readonly runnerChecks?: readonly string[];
1753
1758
  readonly approved?: string;
1754
1759
  readonly repository?: string;
1760
+ readonly conflicts?: boolean;
1761
+ readonly needsRebase?: boolean;
1755
1762
  readonly target?: {
1756
1763
  readonly branch: string;
1757
1764
  readonly head: string;
@@ -123,7 +123,65 @@ export declare const ProgramOutcome: Schema.Union<readonly [Schema.Struct<{
123
123
  readonly status: Schema.Literal<"failed">;
124
124
  readonly failureSummary: Schema.String;
125
125
  }>]>;
126
- declare const RunnerReplicaRpcs_base: RpcGroup.RpcGroup<Rpc.Rpc<"AppendTranscript", Schema.Struct<{
126
+ declare const RunnerReplicaRpcs_base: RpcGroup.RpcGroup<Rpc.Rpc<"Signals", Schema.Struct<{
127
+ runnerReplicaId: Schema.String;
128
+ }>, import("effect/rpc/RpcSchema").Stream<Schema.Union<readonly [Schema.TaggedStruct<"WorkAvailable", {}>, Schema.TaggedStruct<"LeaseRevoked", {
129
+ readonly workUnitId: Schema.String;
130
+ }>, Schema.TaggedStruct<"Settled", {
131
+ readonly workUnitId: Schema.String;
132
+ }>, Schema.TaggedStruct<"Canceled", {
133
+ readonly workUnitId: Schema.String;
134
+ }>, Schema.TaggedStruct<"RunSettled", {
135
+ readonly runId: Schema.String;
136
+ }>, Schema.TaggedStruct<"Steer", {
137
+ readonly workUnitId: Schema.String;
138
+ readonly messageId: Schema.String;
139
+ readonly text: Schema.String;
140
+ }>, Schema.TaggedStruct<"SessionUpdated", {
141
+ readonly workUnitId: Schema.String;
142
+ }>, Schema.TaggedStruct<"UpdateAvailable", {
143
+ readonly version: Schema.String;
144
+ }>]>, typeof RunnerRpcError>, Schema.Never, typeof RunnerAuthentication, never> | Rpc.Rpc<"CreateCheckpointFile", Schema.Struct<{
145
+ lease: Schema.Struct<{
146
+ readonly workUnitId: Schema.String;
147
+ readonly leaseOwnerId: Schema.String;
148
+ readonly runnerReplicaId: Schema.String;
149
+ readonly leaseId: Schema.String;
150
+ readonly attempt: Schema.Int;
151
+ readonly fencingToken: Schema.String;
152
+ readonly capacitySlot: Schema.String;
153
+ }>;
154
+ byteSize: Schema.Int;
155
+ sha256: Schema.String;
156
+ }>, Schema.Struct<{
157
+ readonly file: Schema.Struct<{
158
+ readonly id: Schema.String;
159
+ readonly runId: Schema.String;
160
+ readonly step: Schema.String;
161
+ readonly name: Schema.String;
162
+ readonly caption: Schema.optionalKey<Schema.String>;
163
+ readonly contentType: Schema.String;
164
+ readonly kind: Schema.Literals<readonly ["image", "video", "html", "text", "other"]>;
165
+ readonly byteSize: Schema.Int;
166
+ readonly sha256: Schema.String;
167
+ readonly status: Schema.Literals<readonly ["uploading", "available", "rejected", "refused", "removing", "removed", "expired"]>;
168
+ }>;
169
+ readonly upload: Schema.optional<Schema.Union<readonly [Schema.Struct<{
170
+ readonly url: Schema.String;
171
+ readonly headers: Schema.optionalKey<Schema.$Record<Schema.String, Schema.String>>;
172
+ readonly expiresAt: Schema.String;
173
+ readonly kind: Schema.Literal<"single">;
174
+ }>, Schema.Struct<{
175
+ readonly kind: Schema.Literal<"multipart">;
176
+ readonly partSize: Schema.Int;
177
+ readonly parts: Schema.$Array<Schema.Struct<{
178
+ readonly url: Schema.String;
179
+ readonly headers: Schema.optionalKey<Schema.$Record<Schema.String, Schema.String>>;
180
+ readonly expiresAt: Schema.String;
181
+ readonly partNumber: Schema.Int;
182
+ }>>;
183
+ }>]>>;
184
+ }>, Schema.Union<readonly [typeof RunnerRpcError, typeof RunFileRefused]>, typeof RunnerAuthentication, never> | Rpc.Rpc<"AppendTranscript", Schema.Struct<{
127
185
  workUnitId: Schema.String;
128
186
  entries: Schema.$Array<Schema.Struct<{
129
187
  readonly sequence: Schema.Int;
@@ -493,47 +551,7 @@ declare const RunnerReplicaRpcs_base: RpcGroup.RpcGroup<Rpc.Rpc<"AppendTranscrip
493
551
  readonly byteSize: Schema.Int;
494
552
  readonly sha256: Schema.String;
495
553
  readonly status: Schema.Literals<readonly ["uploading", "available", "rejected", "refused", "removing", "removed", "expired"]>;
496
- }>, typeof RunnerRpcError, typeof RunnerAuthentication, never> | Rpc.Rpc<"CreateCheckpointFile", Schema.Struct<{
497
- lease: Schema.Struct<{
498
- readonly workUnitId: Schema.String;
499
- readonly leaseOwnerId: Schema.String;
500
- readonly runnerReplicaId: Schema.String;
501
- readonly leaseId: Schema.String;
502
- readonly attempt: Schema.Int;
503
- readonly fencingToken: Schema.String;
504
- readonly capacitySlot: Schema.String;
505
- }>;
506
- byteSize: Schema.Int;
507
- sha256: Schema.String;
508
- }>, Schema.Struct<{
509
- readonly file: Schema.Struct<{
510
- readonly id: Schema.String;
511
- readonly runId: Schema.String;
512
- readonly step: Schema.String;
513
- readonly name: Schema.String;
514
- readonly caption: Schema.optionalKey<Schema.String>;
515
- readonly contentType: Schema.String;
516
- readonly kind: Schema.Literals<readonly ["image", "video", "html", "text", "other"]>;
517
- readonly byteSize: Schema.Int;
518
- readonly sha256: Schema.String;
519
- readonly status: Schema.Literals<readonly ["uploading", "available", "rejected", "refused", "removing", "removed", "expired"]>;
520
- }>;
521
- readonly upload: Schema.optional<Schema.Union<readonly [Schema.Struct<{
522
- readonly url: Schema.String;
523
- readonly headers: Schema.optionalKey<Schema.$Record<Schema.String, Schema.String>>;
524
- readonly expiresAt: Schema.String;
525
- readonly kind: Schema.Literal<"single">;
526
- }>, Schema.Struct<{
527
- readonly kind: Schema.Literal<"multipart">;
528
- readonly partSize: Schema.Int;
529
- readonly parts: Schema.$Array<Schema.Struct<{
530
- readonly url: Schema.String;
531
- readonly headers: Schema.optionalKey<Schema.$Record<Schema.String, Schema.String>>;
532
- readonly expiresAt: Schema.String;
533
- readonly partNumber: Schema.Int;
534
- }>>;
535
- }>]>>;
536
- }>, Schema.Union<readonly [typeof RunnerRpcError, typeof RunFileRefused]>, typeof RunnerAuthentication, never> | Rpc.Rpc<"ForgetCheckpoints", Schema.Struct<{
554
+ }>, typeof RunnerRpcError, typeof RunnerAuthentication, never> | Rpc.Rpc<"ForgetCheckpoints", Schema.Struct<{
537
555
  stepAttemptIds: Schema.$Array<Schema.String>;
538
556
  }>, Schema.Void, typeof RunnerRpcError, typeof RunnerAuthentication, never> | Rpc.Rpc<"GitCredential", Schema.Struct<{
539
557
  repoBindingId: Schema.String;
@@ -650,25 +668,7 @@ declare const RunnerReplicaRpcs_base: RpcGroup.RpcGroup<Rpc.Rpc<"AppendTranscrip
650
668
  }>>;
651
669
  }>>, typeof RunnerRpcError, typeof RunnerAuthentication, never> | Rpc.Rpc<"SettledRuns", Schema.Struct<{
652
670
  runIds: Schema.$Array<Schema.String>;
653
- }>, Schema.$Array<Schema.String>, typeof RunnerRpcError, typeof RunnerAuthentication, never> | Rpc.Rpc<"Signals", Schema.Struct<{
654
- runnerReplicaId: Schema.String;
655
- }>, import("effect/rpc/RpcSchema").Stream<Schema.Union<readonly [Schema.TaggedStruct<"WorkAvailable", {}>, Schema.TaggedStruct<"LeaseRevoked", {
656
- readonly workUnitId: Schema.String;
657
- }>, Schema.TaggedStruct<"Settled", {
658
- readonly workUnitId: Schema.String;
659
- }>, Schema.TaggedStruct<"Canceled", {
660
- readonly workUnitId: Schema.String;
661
- }>, Schema.TaggedStruct<"RunSettled", {
662
- readonly runId: Schema.String;
663
- }>, Schema.TaggedStruct<"Steer", {
664
- readonly workUnitId: Schema.String;
665
- readonly messageId: Schema.String;
666
- readonly text: Schema.String;
667
- }>, Schema.TaggedStruct<"SessionUpdated", {
668
- readonly workUnitId: Schema.String;
669
- }>, Schema.TaggedStruct<"UpdateAvailable", {
670
- readonly version: Schema.String;
671
- }>]>, typeof RunnerRpcError>, Schema.Never, typeof RunnerAuthentication, never>>;
671
+ }>, Schema.$Array<Schema.String>, typeof RunnerRpcError, typeof RunnerAuthentication, never>>;
672
672
  /** The Runner process's procedures: Work Unit leases, signals, checkpoints and bundles. */
673
673
  export declare class RunnerReplicaRpcs extends RunnerReplicaRpcs_base {
674
674
  }
@@ -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;
@@ -1041,6 +1043,8 @@ declare const RunnerCapabilityRpcs_base: RpcGroup.RpcGroup<Rpc.Rpc<"AdmitChild",
1041
1043
  readonly runnerChecks: Schema.optionalKey<Schema.$Array<Schema.String>>;
1042
1044
  readonly approved: Schema.optionalKey<Schema.String>;
1043
1045
  readonly repository: Schema.optionalKey<Schema.String>;
1046
+ readonly conflicts: Schema.optionalKey<Schema.Boolean>;
1047
+ readonly needsRebase: Schema.optionalKey<Schema.Boolean>;
1044
1048
  readonly target: Schema.optionalKey<Schema.Struct<{
1045
1049
  readonly branch: Schema.String;
1046
1050
  readonly head: Schema.String;
@@ -1143,6 +1147,8 @@ declare const RunnerCapabilityRpcs_base: RpcGroup.RpcGroup<Rpc.Rpc<"AdmitChild",
1143
1147
  default: Schema.optional<Schema.String>;
1144
1148
  /** Taken at once when the Run's Team delivers in full auto. */
1145
1149
  auto: Schema.optional<Schema.String>;
1150
+ /** Taken at once when the Run's Team delivers in full auto and nobody attends the Run. */
1151
+ unattendedAuto: Schema.optional<Schema.String>;
1146
1152
  timeoutMillis: Schema.optional<Schema.Finite>;
1147
1153
  deferredName: Schema.String;
1148
1154
  }>, Schema.Struct<{
@@ -1226,6 +1232,8 @@ declare const RunnerCapabilityRpcs_base: RpcGroup.RpcGroup<Rpc.Rpc<"AdmitChild",
1226
1232
  step: Schema.String;
1227
1233
  text: Schema.String;
1228
1234
  artifactId: Schema.optional<Schema.String>;
1235
+ /** A `blocker` records what the Task waits on; a note when left out. */
1236
+ kind: Schema.optional<Schema.Literals<readonly ["note", "blocker"]>>;
1229
1237
  }>, Schema.Void, typeof RunnerRpcError, typeof RunnerAuthentication, never> | Rpc.Rpc<"ReportPipeline", Schema.Struct<{
1230
1238
  lease: Schema.Struct<{
1231
1239
  readonly workUnitId: Schema.String;
@@ -1372,7 +1380,51 @@ declare const RunnerCapabilityRpcs_base: RpcGroup.RpcGroup<Rpc.Rpc<"AdmitChild",
1372
1380
  /** A program's domain calls. */
1373
1381
  export declare class RunnerCapabilityRpcs extends RunnerCapabilityRpcs_base {
1374
1382
  }
1375
- declare const RunnerRunFileRpcs_base: RpcGroup.RpcGroup<Rpc.Rpc<"CompleteRunFile", Schema.Struct<{
1383
+ declare const RunnerRunFileRpcs_base: RpcGroup.RpcGroup<Rpc.Rpc<"CreateRunFile", Schema.Struct<{
1384
+ lease: Schema.Struct<{
1385
+ readonly workUnitId: Schema.String;
1386
+ readonly leaseOwnerId: Schema.String;
1387
+ readonly runnerReplicaId: Schema.String;
1388
+ readonly leaseId: Schema.String;
1389
+ readonly attempt: Schema.Int;
1390
+ readonly fencingToken: Schema.String;
1391
+ readonly capacitySlot: Schema.String;
1392
+ }>;
1393
+ step: Schema.String;
1394
+ name: Schema.String;
1395
+ caption: Schema.optional<Schema.String>;
1396
+ contentType: Schema.String;
1397
+ byteSize: Schema.Int;
1398
+ sha256: Schema.String;
1399
+ }>, Schema.Struct<{
1400
+ readonly file: Schema.Struct<{
1401
+ readonly id: Schema.String;
1402
+ readonly runId: Schema.String;
1403
+ readonly step: Schema.String;
1404
+ readonly name: Schema.String;
1405
+ readonly caption: Schema.optionalKey<Schema.String>;
1406
+ readonly contentType: Schema.String;
1407
+ readonly kind: Schema.Literals<readonly ["image", "video", "html", "text", "other"]>;
1408
+ readonly byteSize: Schema.Int;
1409
+ readonly sha256: Schema.String;
1410
+ readonly status: Schema.Literals<readonly ["uploading", "available", "rejected", "refused", "removing", "removed", "expired"]>;
1411
+ }>;
1412
+ readonly upload: Schema.optional<Schema.Union<readonly [Schema.Struct<{
1413
+ readonly url: Schema.String;
1414
+ readonly headers: Schema.optionalKey<Schema.$Record<Schema.String, Schema.String>>;
1415
+ readonly expiresAt: Schema.String;
1416
+ readonly kind: Schema.Literal<"single">;
1417
+ }>, Schema.Struct<{
1418
+ readonly kind: Schema.Literal<"multipart">;
1419
+ readonly partSize: Schema.Int;
1420
+ readonly parts: Schema.$Array<Schema.Struct<{
1421
+ readonly url: Schema.String;
1422
+ readonly headers: Schema.optionalKey<Schema.$Record<Schema.String, Schema.String>>;
1423
+ readonly expiresAt: Schema.String;
1424
+ readonly partNumber: Schema.Int;
1425
+ }>>;
1426
+ }>]>>;
1427
+ }>, Schema.Union<readonly [typeof RunnerRpcError, typeof RunFileRefused]>, typeof RunnerAuthentication, never> | Rpc.Rpc<"CompleteRunFile", Schema.Struct<{
1376
1428
  lease: Schema.Struct<{
1377
1429
  readonly workUnitId: Schema.String;
1378
1430
  readonly leaseOwnerId: Schema.String;
@@ -1398,7 +1450,31 @@ declare const RunnerRunFileRpcs_base: RpcGroup.RpcGroup<Rpc.Rpc<"CompleteRunFile
1398
1450
  readonly byteSize: Schema.Int;
1399
1451
  readonly sha256: Schema.String;
1400
1452
  readonly status: Schema.Literals<readonly ["uploading", "available", "rejected", "refused", "removing", "removed", "expired"]>;
1401
- }>, typeof RunnerRpcError, typeof RunnerAuthentication, never> | Rpc.Rpc<"CreateRunFile", Schema.Struct<{
1453
+ }>, typeof RunnerRpcError, typeof RunnerAuthentication, never> | Rpc.Rpc<"RunFileParts", Schema.Struct<{
1454
+ lease: Schema.Struct<{
1455
+ readonly workUnitId: Schema.String;
1456
+ readonly leaseOwnerId: Schema.String;
1457
+ readonly runnerReplicaId: Schema.String;
1458
+ readonly leaseId: Schema.String;
1459
+ readonly attempt: Schema.Int;
1460
+ readonly fencingToken: Schema.String;
1461
+ readonly capacitySlot: Schema.String;
1462
+ }>;
1463
+ fileId: Schema.String;
1464
+ partNumbers: Schema.$Array<Schema.Int>;
1465
+ }>, Schema.Struct<{
1466
+ readonly parts: Schema.$Array<Schema.Struct<{
1467
+ readonly url: Schema.String;
1468
+ readonly headers: Schema.optionalKey<Schema.$Record<Schema.String, Schema.String>>;
1469
+ readonly expiresAt: Schema.String;
1470
+ readonly partNumber: Schema.Int;
1471
+ }>>;
1472
+ }>, typeof RunnerRpcError, typeof RunnerAuthentication, never>>;
1473
+ /** Run File uploads, under a program's orchestration lease or the Runner's verification lease. */
1474
+ export declare class RunnerRunFileRpcs extends RunnerRunFileRpcs_base {
1475
+ }
1476
+ /** What a program process may call; its bundle speaks the Runner RPC protocol version through these. */
1477
+ export declare const ProgramRpcs: RpcGroup.RpcGroup<Rpc.Rpc<"CreateRunFile", Schema.Struct<{
1402
1478
  lease: Schema.Struct<{
1403
1479
  readonly workUnitId: Schema.String;
1404
1480
  readonly leaseOwnerId: Schema.String;
@@ -1442,31 +1518,7 @@ declare const RunnerRunFileRpcs_base: RpcGroup.RpcGroup<Rpc.Rpc<"CompleteRunFile
1442
1518
  readonly partNumber: Schema.Int;
1443
1519
  }>>;
1444
1520
  }>]>>;
1445
- }>, Schema.Union<readonly [typeof RunnerRpcError, typeof RunFileRefused]>, typeof RunnerAuthentication, never> | Rpc.Rpc<"RunFileParts", Schema.Struct<{
1446
- lease: Schema.Struct<{
1447
- readonly workUnitId: Schema.String;
1448
- readonly leaseOwnerId: Schema.String;
1449
- readonly runnerReplicaId: Schema.String;
1450
- readonly leaseId: Schema.String;
1451
- readonly attempt: Schema.Int;
1452
- readonly fencingToken: Schema.String;
1453
- readonly capacitySlot: Schema.String;
1454
- }>;
1455
- fileId: Schema.String;
1456
- partNumbers: Schema.$Array<Schema.Int>;
1457
- }>, Schema.Struct<{
1458
- readonly parts: Schema.$Array<Schema.Struct<{
1459
- readonly url: Schema.String;
1460
- readonly headers: Schema.optionalKey<Schema.$Record<Schema.String, Schema.String>>;
1461
- readonly expiresAt: Schema.String;
1462
- readonly partNumber: Schema.Int;
1463
- }>>;
1464
- }>, typeof RunnerRpcError, typeof RunnerAuthentication, never>>;
1465
- /** Run File uploads, under a program's orchestration lease or the Runner's verification lease. */
1466
- export declare class RunnerRunFileRpcs extends RunnerRunFileRpcs_base {
1467
- }
1468
- /** What a program process may call; its bundle speaks the Runner RPC protocol version through these. */
1469
- export declare const ProgramRpcs: RpcGroup.RpcGroup<Rpc.Rpc<"AdmitChild", Schema.Struct<{
1521
+ }>, Schema.Union<readonly [typeof RunnerRpcError, typeof RunFileRefused]>, typeof RunnerAuthentication, never> | Rpc.Rpc<"AdmitChild", Schema.Struct<{
1470
1522
  lease: Schema.Struct<{
1471
1523
  readonly workUnitId: Schema.String;
1472
1524
  readonly leaseOwnerId: Schema.String;
@@ -1479,6 +1531,8 @@ export declare const ProgramRpcs: RpcGroup.RpcGroup<Rpc.Rpc<"AdmitChild", Schema
1479
1531
  step: Schema.String;
1480
1532
  loop: Schema.String;
1481
1533
  input: Schema.Codec<Schema.Json, Schema.Json, never, never>;
1534
+ /** Constraints the Child Run's Intent starts with besides its parent's. */
1535
+ constraints: Schema.optional<Schema.$Array<Schema.String>>;
1482
1536
  deferredName: Schema.String;
1483
1537
  }>, Schema.Struct<{
1484
1538
  readonly runId: Schema.String;
@@ -1631,51 +1685,7 @@ export declare const ProgramRpcs: RpcGroup.RpcGroup<Rpc.Rpc<"AdmitChild", Schema
1631
1685
  }>, Schema.$Array<Schema.Struct<{
1632
1686
  readonly key: Schema.String;
1633
1687
  readonly taskId: Schema.String;
1634
- }>>, typeof RunnerRpcError, typeof RunnerAuthentication, never> | Rpc.Rpc<"CreateRunFile", Schema.Struct<{
1635
- lease: Schema.Struct<{
1636
- readonly workUnitId: Schema.String;
1637
- readonly leaseOwnerId: Schema.String;
1638
- readonly runnerReplicaId: Schema.String;
1639
- readonly leaseId: Schema.String;
1640
- readonly attempt: Schema.Int;
1641
- readonly fencingToken: Schema.String;
1642
- readonly capacitySlot: Schema.String;
1643
- }>;
1644
- step: Schema.String;
1645
- name: Schema.String;
1646
- caption: Schema.optional<Schema.String>;
1647
- contentType: Schema.String;
1648
- byteSize: Schema.Int;
1649
- sha256: Schema.String;
1650
- }>, Schema.Struct<{
1651
- readonly file: Schema.Struct<{
1652
- readonly id: Schema.String;
1653
- readonly runId: Schema.String;
1654
- readonly step: Schema.String;
1655
- readonly name: Schema.String;
1656
- readonly caption: Schema.optionalKey<Schema.String>;
1657
- readonly contentType: Schema.String;
1658
- readonly kind: Schema.Literals<readonly ["image", "video", "html", "text", "other"]>;
1659
- readonly byteSize: Schema.Int;
1660
- readonly sha256: Schema.String;
1661
- readonly status: Schema.Literals<readonly ["uploading", "available", "rejected", "refused", "removing", "removed", "expired"]>;
1662
- }>;
1663
- readonly upload: Schema.optional<Schema.Union<readonly [Schema.Struct<{
1664
- readonly url: Schema.String;
1665
- readonly headers: Schema.optionalKey<Schema.$Record<Schema.String, Schema.String>>;
1666
- readonly expiresAt: Schema.String;
1667
- readonly kind: Schema.Literal<"single">;
1668
- }>, Schema.Struct<{
1669
- readonly kind: Schema.Literal<"multipart">;
1670
- readonly partSize: Schema.Int;
1671
- readonly parts: Schema.$Array<Schema.Struct<{
1672
- readonly url: Schema.String;
1673
- readonly headers: Schema.optionalKey<Schema.$Record<Schema.String, Schema.String>>;
1674
- readonly expiresAt: Schema.String;
1675
- readonly partNumber: Schema.Int;
1676
- }>>;
1677
- }>]>>;
1678
- }>, Schema.Union<readonly [typeof RunnerRpcError, typeof RunFileRefused]>, typeof RunnerAuthentication, never> | Rpc.Rpc<"DeferredDone", Schema.Struct<{
1688
+ }>>, typeof RunnerRpcError, typeof RunnerAuthentication, never> | Rpc.Rpc<"DeferredDone", Schema.Struct<{
1679
1689
  lease: Schema.Struct<{
1680
1690
  readonly workUnitId: Schema.String;
1681
1691
  readonly leaseOwnerId: Schema.String;
@@ -1865,6 +1875,8 @@ export declare const ProgramRpcs: RpcGroup.RpcGroup<Rpc.Rpc<"AdmitChild", Schema
1865
1875
  readonly runnerChecks: Schema.optionalKey<Schema.$Array<Schema.String>>;
1866
1876
  readonly approved: Schema.optionalKey<Schema.String>;
1867
1877
  readonly repository: Schema.optionalKey<Schema.String>;
1878
+ readonly conflicts: Schema.optionalKey<Schema.Boolean>;
1879
+ readonly needsRebase: Schema.optionalKey<Schema.Boolean>;
1868
1880
  readonly target: Schema.optionalKey<Schema.Struct<{
1869
1881
  readonly branch: Schema.String;
1870
1882
  readonly head: Schema.String;
@@ -1967,6 +1979,8 @@ export declare const ProgramRpcs: RpcGroup.RpcGroup<Rpc.Rpc<"AdmitChild", Schema
1967
1979
  default: Schema.optional<Schema.String>;
1968
1980
  /** Taken at once when the Run's Team delivers in full auto. */
1969
1981
  auto: Schema.optional<Schema.String>;
1982
+ /** Taken at once when the Run's Team delivers in full auto and nobody attends the Run. */
1983
+ unattendedAuto: Schema.optional<Schema.String>;
1970
1984
  timeoutMillis: Schema.optional<Schema.Finite>;
1971
1985
  deferredName: Schema.String;
1972
1986
  }>, Schema.Struct<{
@@ -2063,6 +2077,8 @@ export declare const ProgramRpcs: RpcGroup.RpcGroup<Rpc.Rpc<"AdmitChild", Schema
2063
2077
  step: Schema.String;
2064
2078
  text: Schema.String;
2065
2079
  artifactId: Schema.optional<Schema.String>;
2080
+ /** A `blocker` records what the Task waits on; a note when left out. */
2081
+ kind: Schema.optional<Schema.Literals<readonly ["note", "blocker"]>>;
2066
2082
  }>, Schema.Void, typeof RunnerRpcError, typeof RunnerAuthentication, never> | Rpc.Rpc<"ReportPipeline", Schema.Struct<{
2067
2083
  lease: Schema.Struct<{
2068
2084
  readonly workUnitId: Schema.String;
@@ -2249,7 +2265,109 @@ export declare const ProgramRpcs: RpcGroup.RpcGroup<Rpc.Rpc<"AdmitChild", Schema
2249
2265
  }>;
2250
2266
  }>, Schema.Void, typeof RunnerRpcError, typeof RunnerAuthentication, never>>;
2251
2267
  /** Every group, served on the one Runner RPC endpoint; a request names its procedure by tag alone. */
2252
- export declare const RunnerRpcs: RpcGroup.RpcGroup<Rpc.Rpc<"AdmitChild", Schema.Struct<{
2268
+ export declare const RunnerRpcs: RpcGroup.RpcGroup<Rpc.Rpc<"Signals", Schema.Struct<{
2269
+ runnerReplicaId: Schema.String;
2270
+ }>, import("effect/rpc/RpcSchema").Stream<Schema.Union<readonly [Schema.TaggedStruct<"WorkAvailable", {}>, Schema.TaggedStruct<"LeaseRevoked", {
2271
+ readonly workUnitId: Schema.String;
2272
+ }>, Schema.TaggedStruct<"Settled", {
2273
+ readonly workUnitId: Schema.String;
2274
+ }>, Schema.TaggedStruct<"Canceled", {
2275
+ readonly workUnitId: Schema.String;
2276
+ }>, Schema.TaggedStruct<"RunSettled", {
2277
+ readonly runId: Schema.String;
2278
+ }>, Schema.TaggedStruct<"Steer", {
2279
+ readonly workUnitId: Schema.String;
2280
+ readonly messageId: Schema.String;
2281
+ readonly text: Schema.String;
2282
+ }>, Schema.TaggedStruct<"SessionUpdated", {
2283
+ readonly workUnitId: Schema.String;
2284
+ }>, Schema.TaggedStruct<"UpdateAvailable", {
2285
+ readonly version: Schema.String;
2286
+ }>]>, typeof RunnerRpcError>, Schema.Never, typeof RunnerAuthentication, never> | Rpc.Rpc<"CreateCheckpointFile", Schema.Struct<{
2287
+ lease: Schema.Struct<{
2288
+ readonly workUnitId: Schema.String;
2289
+ readonly leaseOwnerId: Schema.String;
2290
+ readonly runnerReplicaId: Schema.String;
2291
+ readonly leaseId: Schema.String;
2292
+ readonly attempt: Schema.Int;
2293
+ readonly fencingToken: Schema.String;
2294
+ readonly capacitySlot: Schema.String;
2295
+ }>;
2296
+ byteSize: Schema.Int;
2297
+ sha256: Schema.String;
2298
+ }>, Schema.Struct<{
2299
+ readonly file: Schema.Struct<{
2300
+ readonly id: Schema.String;
2301
+ readonly runId: Schema.String;
2302
+ readonly step: Schema.String;
2303
+ readonly name: Schema.String;
2304
+ readonly caption: Schema.optionalKey<Schema.String>;
2305
+ readonly contentType: Schema.String;
2306
+ readonly kind: Schema.Literals<readonly ["image", "video", "html", "text", "other"]>;
2307
+ readonly byteSize: Schema.Int;
2308
+ readonly sha256: Schema.String;
2309
+ readonly status: Schema.Literals<readonly ["uploading", "available", "rejected", "refused", "removing", "removed", "expired"]>;
2310
+ }>;
2311
+ readonly upload: Schema.optional<Schema.Union<readonly [Schema.Struct<{
2312
+ readonly url: Schema.String;
2313
+ readonly headers: Schema.optionalKey<Schema.$Record<Schema.String, Schema.String>>;
2314
+ readonly expiresAt: Schema.String;
2315
+ readonly kind: Schema.Literal<"single">;
2316
+ }>, Schema.Struct<{
2317
+ readonly kind: Schema.Literal<"multipart">;
2318
+ readonly partSize: Schema.Int;
2319
+ readonly parts: Schema.$Array<Schema.Struct<{
2320
+ readonly url: Schema.String;
2321
+ readonly headers: Schema.optionalKey<Schema.$Record<Schema.String, Schema.String>>;
2322
+ readonly expiresAt: Schema.String;
2323
+ readonly partNumber: Schema.Int;
2324
+ }>>;
2325
+ }>]>>;
2326
+ }>, Schema.Union<readonly [typeof RunnerRpcError, typeof RunFileRefused]>, typeof RunnerAuthentication, never> | Rpc.Rpc<"CreateRunFile", Schema.Struct<{
2327
+ lease: Schema.Struct<{
2328
+ readonly workUnitId: Schema.String;
2329
+ readonly leaseOwnerId: Schema.String;
2330
+ readonly runnerReplicaId: Schema.String;
2331
+ readonly leaseId: Schema.String;
2332
+ readonly attempt: Schema.Int;
2333
+ readonly fencingToken: Schema.String;
2334
+ readonly capacitySlot: Schema.String;
2335
+ }>;
2336
+ step: Schema.String;
2337
+ name: Schema.String;
2338
+ caption: Schema.optional<Schema.String>;
2339
+ contentType: Schema.String;
2340
+ byteSize: Schema.Int;
2341
+ sha256: Schema.String;
2342
+ }>, Schema.Struct<{
2343
+ readonly file: Schema.Struct<{
2344
+ readonly id: Schema.String;
2345
+ readonly runId: Schema.String;
2346
+ readonly step: Schema.String;
2347
+ readonly name: Schema.String;
2348
+ readonly caption: Schema.optionalKey<Schema.String>;
2349
+ readonly contentType: Schema.String;
2350
+ readonly kind: Schema.Literals<readonly ["image", "video", "html", "text", "other"]>;
2351
+ readonly byteSize: Schema.Int;
2352
+ readonly sha256: Schema.String;
2353
+ readonly status: Schema.Literals<readonly ["uploading", "available", "rejected", "refused", "removing", "removed", "expired"]>;
2354
+ }>;
2355
+ readonly upload: Schema.optional<Schema.Union<readonly [Schema.Struct<{
2356
+ readonly url: Schema.String;
2357
+ readonly headers: Schema.optionalKey<Schema.$Record<Schema.String, Schema.String>>;
2358
+ readonly expiresAt: Schema.String;
2359
+ readonly kind: Schema.Literal<"single">;
2360
+ }>, Schema.Struct<{
2361
+ readonly kind: Schema.Literal<"multipart">;
2362
+ readonly partSize: Schema.Int;
2363
+ readonly parts: Schema.$Array<Schema.Struct<{
2364
+ readonly url: Schema.String;
2365
+ readonly headers: Schema.optionalKey<Schema.$Record<Schema.String, Schema.String>>;
2366
+ readonly expiresAt: Schema.String;
2367
+ readonly partNumber: Schema.Int;
2368
+ }>>;
2369
+ }>]>>;
2370
+ }>, Schema.Union<readonly [typeof RunnerRpcError, typeof RunFileRefused]>, typeof RunnerAuthentication, never> | Rpc.Rpc<"AdmitChild", Schema.Struct<{
2253
2371
  lease: Schema.Struct<{
2254
2372
  readonly workUnitId: Schema.String;
2255
2373
  readonly leaseOwnerId: Schema.String;
@@ -2262,6 +2380,8 @@ export declare const RunnerRpcs: RpcGroup.RpcGroup<Rpc.Rpc<"AdmitChild", Schema.
2262
2380
  step: Schema.String;
2263
2381
  loop: Schema.String;
2264
2382
  input: Schema.Codec<Schema.Json, Schema.Json, never, never>;
2383
+ /** Constraints the Child Run's Intent starts with besides its parent's. */
2384
+ constraints: Schema.optional<Schema.$Array<Schema.String>>;
2265
2385
  deferredName: Schema.String;
2266
2386
  }>, Schema.Struct<{
2267
2387
  readonly runId: Schema.String;
@@ -2762,47 +2882,7 @@ export declare const RunnerRpcs: RpcGroup.RpcGroup<Rpc.Rpc<"AdmitChild", Schema.
2762
2882
  readonly byteSize: Schema.Int;
2763
2883
  readonly sha256: Schema.String;
2764
2884
  readonly status: Schema.Literals<readonly ["uploading", "available", "rejected", "refused", "removing", "removed", "expired"]>;
2765
- }>, typeof RunnerRpcError, typeof RunnerAuthentication, never> | Rpc.Rpc<"CreateCheckpointFile", Schema.Struct<{
2766
- lease: Schema.Struct<{
2767
- readonly workUnitId: Schema.String;
2768
- readonly leaseOwnerId: Schema.String;
2769
- readonly runnerReplicaId: Schema.String;
2770
- readonly leaseId: Schema.String;
2771
- readonly attempt: Schema.Int;
2772
- readonly fencingToken: Schema.String;
2773
- readonly capacitySlot: Schema.String;
2774
- }>;
2775
- byteSize: Schema.Int;
2776
- sha256: Schema.String;
2777
- }>, Schema.Struct<{
2778
- readonly file: Schema.Struct<{
2779
- readonly id: Schema.String;
2780
- readonly runId: Schema.String;
2781
- readonly step: Schema.String;
2782
- readonly name: Schema.String;
2783
- readonly caption: Schema.optionalKey<Schema.String>;
2784
- readonly contentType: Schema.String;
2785
- readonly kind: Schema.Literals<readonly ["image", "video", "html", "text", "other"]>;
2786
- readonly byteSize: Schema.Int;
2787
- readonly sha256: Schema.String;
2788
- readonly status: Schema.Literals<readonly ["uploading", "available", "rejected", "refused", "removing", "removed", "expired"]>;
2789
- }>;
2790
- readonly upload: Schema.optional<Schema.Union<readonly [Schema.Struct<{
2791
- readonly url: Schema.String;
2792
- readonly headers: Schema.optionalKey<Schema.$Record<Schema.String, Schema.String>>;
2793
- readonly expiresAt: Schema.String;
2794
- readonly kind: Schema.Literal<"single">;
2795
- }>, Schema.Struct<{
2796
- readonly kind: Schema.Literal<"multipart">;
2797
- readonly partSize: Schema.Int;
2798
- readonly parts: Schema.$Array<Schema.Struct<{
2799
- readonly url: Schema.String;
2800
- readonly headers: Schema.optionalKey<Schema.$Record<Schema.String, Schema.String>>;
2801
- readonly expiresAt: Schema.String;
2802
- readonly partNumber: Schema.Int;
2803
- }>>;
2804
- }>]>>;
2805
- }>, Schema.Union<readonly [typeof RunnerRpcError, typeof RunFileRefused]>, typeof RunnerAuthentication, never> | Rpc.Rpc<"CreatePlanTasks", Schema.Struct<{
2885
+ }>, typeof RunnerRpcError, typeof RunnerAuthentication, never> | Rpc.Rpc<"CreatePlanTasks", Schema.Struct<{
2806
2886
  lease: Schema.Struct<{
2807
2887
  readonly workUnitId: Schema.String;
2808
2888
  readonly leaseOwnerId: Schema.String;
@@ -2824,51 +2904,7 @@ export declare const RunnerRpcs: RpcGroup.RpcGroup<Rpc.Rpc<"AdmitChild", Schema.
2824
2904
  }>, Schema.$Array<Schema.Struct<{
2825
2905
  readonly key: Schema.String;
2826
2906
  readonly taskId: Schema.String;
2827
- }>>, typeof RunnerRpcError, typeof RunnerAuthentication, never> | Rpc.Rpc<"CreateRunFile", Schema.Struct<{
2828
- lease: Schema.Struct<{
2829
- readonly workUnitId: Schema.String;
2830
- readonly leaseOwnerId: Schema.String;
2831
- readonly runnerReplicaId: Schema.String;
2832
- readonly leaseId: Schema.String;
2833
- readonly attempt: Schema.Int;
2834
- readonly fencingToken: Schema.String;
2835
- readonly capacitySlot: Schema.String;
2836
- }>;
2837
- step: Schema.String;
2838
- name: Schema.String;
2839
- caption: Schema.optional<Schema.String>;
2840
- contentType: Schema.String;
2841
- byteSize: Schema.Int;
2842
- sha256: Schema.String;
2843
- }>, Schema.Struct<{
2844
- readonly file: Schema.Struct<{
2845
- readonly id: Schema.String;
2846
- readonly runId: Schema.String;
2847
- readonly step: Schema.String;
2848
- readonly name: Schema.String;
2849
- readonly caption: Schema.optionalKey<Schema.String>;
2850
- readonly contentType: Schema.String;
2851
- readonly kind: Schema.Literals<readonly ["image", "video", "html", "text", "other"]>;
2852
- readonly byteSize: Schema.Int;
2853
- readonly sha256: Schema.String;
2854
- readonly status: Schema.Literals<readonly ["uploading", "available", "rejected", "refused", "removing", "removed", "expired"]>;
2855
- }>;
2856
- readonly upload: Schema.optional<Schema.Union<readonly [Schema.Struct<{
2857
- readonly url: Schema.String;
2858
- readonly headers: Schema.optionalKey<Schema.$Record<Schema.String, Schema.String>>;
2859
- readonly expiresAt: Schema.String;
2860
- readonly kind: Schema.Literal<"single">;
2861
- }>, Schema.Struct<{
2862
- readonly kind: Schema.Literal<"multipart">;
2863
- readonly partSize: Schema.Int;
2864
- readonly parts: Schema.$Array<Schema.Struct<{
2865
- readonly url: Schema.String;
2866
- readonly headers: Schema.optionalKey<Schema.$Record<Schema.String, Schema.String>>;
2867
- readonly expiresAt: Schema.String;
2868
- readonly partNumber: Schema.Int;
2869
- }>>;
2870
- }>]>>;
2871
- }>, Schema.Union<readonly [typeof RunnerRpcError, typeof RunFileRefused]>, typeof RunnerAuthentication, never> | Rpc.Rpc<"DeferredDone", Schema.Struct<{
2907
+ }>>, typeof RunnerRpcError, typeof RunnerAuthentication, never> | Rpc.Rpc<"DeferredDone", Schema.Struct<{
2872
2908
  lease: Schema.Struct<{
2873
2909
  readonly workUnitId: Schema.String;
2874
2910
  readonly leaseOwnerId: Schema.String;
@@ -3101,6 +3137,8 @@ export declare const RunnerRpcs: RpcGroup.RpcGroup<Rpc.Rpc<"AdmitChild", Schema.
3101
3137
  readonly runnerChecks: Schema.optionalKey<Schema.$Array<Schema.String>>;
3102
3138
  readonly approved: Schema.optionalKey<Schema.String>;
3103
3139
  readonly repository: Schema.optionalKey<Schema.String>;
3140
+ readonly conflicts: Schema.optionalKey<Schema.Boolean>;
3141
+ readonly needsRebase: Schema.optionalKey<Schema.Boolean>;
3104
3142
  readonly target: Schema.optionalKey<Schema.Struct<{
3105
3143
  readonly branch: Schema.String;
3106
3144
  readonly head: Schema.String;
@@ -3203,6 +3241,8 @@ export declare const RunnerRpcs: RpcGroup.RpcGroup<Rpc.Rpc<"AdmitChild", Schema.
3203
3241
  default: Schema.optional<Schema.String>;
3204
3242
  /** Taken at once when the Run's Team delivers in full auto. */
3205
3243
  auto: Schema.optional<Schema.String>;
3244
+ /** Taken at once when the Run's Team delivers in full auto and nobody attends the Run. */
3245
+ unattendedAuto: Schema.optional<Schema.String>;
3206
3246
  timeoutMillis: Schema.optional<Schema.Finite>;
3207
3247
  deferredName: Schema.String;
3208
3248
  }>, Schema.Struct<{
@@ -3299,6 +3339,8 @@ export declare const RunnerRpcs: RpcGroup.RpcGroup<Rpc.Rpc<"AdmitChild", Schema.
3299
3339
  step: Schema.String;
3300
3340
  text: Schema.String;
3301
3341
  artifactId: Schema.optional<Schema.String>;
3342
+ /** A `blocker` records what the Task waits on; a note when left out. */
3343
+ kind: Schema.optional<Schema.Literals<readonly ["note", "blocker"]>>;
3302
3344
  }>, Schema.Void, typeof RunnerRpcError, typeof RunnerAuthentication, never> | Rpc.Rpc<"Release", Schema.Struct<{
3303
3345
  readonly workUnitId: Schema.String;
3304
3346
  readonly lease: Schema.Struct<{
@@ -3461,25 +3503,7 @@ export declare const RunnerRpcs: RpcGroup.RpcGroup<Rpc.Rpc<"AdmitChild", Schema.
3461
3503
  }>>;
3462
3504
  }>>, typeof RunnerRpcError, typeof RunnerAuthentication, never> | Rpc.Rpc<"SettledRuns", Schema.Struct<{
3463
3505
  runIds: Schema.$Array<Schema.String>;
3464
- }>, Schema.$Array<Schema.String>, typeof RunnerRpcError, typeof RunnerAuthentication, never> | Rpc.Rpc<"Signals", Schema.Struct<{
3465
- runnerReplicaId: Schema.String;
3466
- }>, import("effect/rpc/RpcSchema").Stream<Schema.Union<readonly [Schema.TaggedStruct<"WorkAvailable", {}>, Schema.TaggedStruct<"LeaseRevoked", {
3467
- readonly workUnitId: Schema.String;
3468
- }>, Schema.TaggedStruct<"Settled", {
3469
- readonly workUnitId: Schema.String;
3470
- }>, Schema.TaggedStruct<"Canceled", {
3471
- readonly workUnitId: Schema.String;
3472
- }>, Schema.TaggedStruct<"RunSettled", {
3473
- readonly runId: Schema.String;
3474
- }>, Schema.TaggedStruct<"Steer", {
3475
- readonly workUnitId: Schema.String;
3476
- readonly messageId: Schema.String;
3477
- readonly text: Schema.String;
3478
- }>, Schema.TaggedStruct<"SessionUpdated", {
3479
- readonly workUnitId: Schema.String;
3480
- }>, Schema.TaggedStruct<"UpdateAvailable", {
3481
- readonly version: Schema.String;
3482
- }>]>, typeof RunnerRpcError>, Schema.Never, typeof RunnerAuthentication, never> | Rpc.Rpc<"StartAgentStep", Schema.Struct<{
3506
+ }>, Schema.$Array<Schema.String>, typeof RunnerRpcError, typeof RunnerAuthentication, never> | Rpc.Rpc<"StartAgentStep", Schema.Struct<{
3483
3507
  lease: Schema.Struct<{
3484
3508
  readonly workUnitId: Schema.String;
3485
3509
  readonly leaseOwnerId: Schema.String;
@@ -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<{
@@ -264,9 +265,13 @@ export declare const PipelineStatus: Schema.Struct<{
264
265
  readonly approved: Schema.optionalKey<Schema.String>;
265
266
  /** The ChangeRequest's RepoBinding. */
266
267
  readonly repository: Schema.optionalKey<Schema.String>;
268
+ /** The forge says the ChangeRequest conflicts with its target; left out while it has not worked that out. */
269
+ readonly conflicts: Schema.optionalKey<Schema.Boolean>;
270
+ /** The forge says the branch must take its target in before it can merge, as a semi-linear project does. */
271
+ readonly needsRebase: Schema.optionalKey<Schema.Boolean>;
267
272
  /**
268
- * While the pipeline fails: the head of the ChangeRequest's target branch and the forge's checks on it, none where
269
- * the forge runs no pipeline. Left out when the forge could not say.
273
+ * While the pipeline fails, or the forge says the ChangeRequest conflicts or needs rebase: the head of its target
274
+ * branch and the forge's checks on it, none where the forge runs no pipeline. Left out when the forge could not say.
270
275
  */
271
276
  readonly target: Schema.optionalKey<Schema.Struct<{
272
277
  readonly branch: Schema.String;
@@ -749,6 +754,8 @@ export declare const pipelineStatus: (name: string, request: typeof ChangeReques
749
754
  readonly runnerChecks?: readonly string[];
750
755
  readonly approved?: string;
751
756
  readonly repository?: string;
757
+ readonly conflicts?: boolean;
758
+ readonly needsRebase?: boolean;
752
759
  readonly target?: {
753
760
  readonly branch: string;
754
761
  readonly head: string;
@@ -13,3 +13,4 @@ export * from './measure';
13
13
  export * from './claims';
14
14
  /** What a verification is called, as a Loop's Output names one. */
15
15
  export { CheckName } from '../../../core/src/work-unit';
16
+ export { isUnansweredQuestion, unansweredQuestionReason } from '../../../core/src/loop';
@@ -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
- /** Starts a Child Run of `loop`, a Loop or its id and schemas, and awaits its output. */
292
- export declare const call: <In, Out>(name: string, loop: Pick<LoopDefinition<In, Out, unknown>, 'id' | 'input' | 'output'>, input: In) => Effect.Effect<Out, CapabilityDenied | ChildFailed | DuplicateStep | StepFailed, LoopHost | LoopRun | import("effect/workflow/WorkflowEngine").WorkflowEngine | import("effect/workflow/WorkflowEngine").WorkflowInstance>;
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;