@llm4ts/shell 2.8.0 → 2.9.1

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/Cli.d.ts CHANGED
@@ -41,7 +41,7 @@ export interface CostsFlags {
41
41
  }
42
42
  /** Turns the `costs` flags into program options; every rejection is a usage error. */
43
43
  export declare const costsOptionsFrom: (flags: CostsFlags, cwd?: string) => Effect.Effect<CostsOptions, ShellUsageError>;
44
- export declare const shellCommand: Command.Command<"llm4ts", {} | {}, {}, import("./FlowLaunch.ts").FlowLaunchError | import("@llm4ts/flow/FlowError.ts").DecisionsInvalid | ShellUsageError | ShellActionError, import("effect/unstable/cli/Prompt").Environment>;
44
+ export declare const shellCommand: Command.Command<"llm4ts", {} | {}, {}, import("./FlowLaunch.ts").FlowLaunchError | import("@llm4ts/flow/FlowError.ts").DecisionsInvalid | ShellUsageError | ShellActionError | import("@llm4ts/flow/FlowError.ts").PersistenceError | import("@llm4ts/flow/FlowError.ts").PlanParseError | import("@llm4ts/flow/FlowError.ts").UnsupportedSchemaVersion | import("@llm4ts/flow/FlowError.ts").WorkspacePathError | import("@llm4ts/flow/FlowError.ts").WorkspaceLimitError | import("@llm4ts/flow/FlowError.ts").WorkspaceIoError | import("@llm4ts/flow/FlowError.ts").FlowAborted | import("@llm4ts/flow/FlowError.ts").ProcessError | import("@llm4ts/flow/FlowError.ts").FlowLlmError | import("@llm4ts/flow/FlowError.ts").FlowCapabilityDenied | import("@llm4ts/flow/FlowError.ts").ColumnNotFound | import("@llm4ts/flow/FlowError.ts").BudgetExceeded | import("@llm4ts/flow/FlowError.ts").StoryPlanInvalid | import("@llm4ts/flow/FlowError.ts").PerimeterViolation | import("@llm4ts/flow/FlowError.ts").MissingDependency | import("@llm4ts/flow/FlowError.ts").MergeConflict | import("@llm4ts/flow/FlowError.ts").EpicCheckoutDirty | import("@llm4ts/flow/FlowError.ts").RosterExhausted | import("@llm4ts/flow/FlowError.ts").RosterInvalid | import("@llm4ts/flow/FlowError.ts").StoryFailed | import("@llm4ts/flow/FlowError.ts").OpenPointsPending | import("@llm4ts/flow/FlowError.ts").ContractConflict, import("effect/unstable/cli/Prompt").Environment>;
45
45
  export declare const runShellCommand: (argv: ReadonlyArray<string>) => Effect.Effect<void, unknown, Command.Environment>;
46
46
  export {};
47
47
  //# sourceMappingURL=Cli.d.ts.map
package/dist/Cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Cli.d.ts","sourceRoot":"","sources":["../src/Cli.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,OAAO,MAAM,6BAA6B,CAAA;AAGtD,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EAA8C,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACpG,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAA;;;;AAMzB,qBAAa,eAAgB,SAAQ,oBAEnC;CAAG;;;;AAEL,qBAAa,gBAAiB,SAAQ,qBAEpC;CAAG;AAEL,eAAO,MAAM,eAAe,QAAO,MAA6D,CAAA;AAEhG,eAAO,MAAM,cAAc,GAAI,UAAU;IACvC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAA;CACpE,KAAG,aAaH,CAAA;AAQD,eAAO,MAAM,aAAa,GACxB,MAAM,aAAa,CAAC,aAAa,CAAC,EAClC,UAAU;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,KACpC,MA+BF,CAAA;AAED,eAAO,MAAM,cAAc,GACzB,OAAO,aAAa,CAAC,cAAc,CAAC,EACpC,UAAU;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,KACpC,MAyBF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,iGAwBtB,CAAA;AAwMF,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACrC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;CAC3C;AAED,sFAAsF;AACtF,eAAO,MAAM,gBAAgB,GAC3B,OAAO,UAAU,EACjB,MAAK,MAAsB,KAC1B,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,eAAe,CA2B1C,CAAA;AAmDJ,eAAO,MAAM,YAAY,iOAuBxB,CAAA;AAED,eAAO,MAAM,eAAe,GAC1B,MAAM,aAAa,CAAC,MAAM,CAAC,KAC1B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,CACe,CAAA"}
1
+ {"version":3,"file":"Cli.d.ts","sourceRoot":"","sources":["../src/Cli.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,OAAO,MAAM,6BAA6B,CAAA;AAGtD,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAA;AAU7B,OAAO,EAA8C,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACpG,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAA;;;;AAMzB,qBAAa,eAAgB,SAAQ,oBAEnC;CAAG;;;;AAEL,qBAAa,gBAAiB,SAAQ,qBAEpC;CAAG;AAEL,eAAO,MAAM,eAAe,QAAO,MAA6D,CAAA;AAEhG,eAAO,MAAM,cAAc,GAAI,UAAU;IACvC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAA;CACpE,KAAG,aAaH,CAAA;AAQD,eAAO,MAAM,aAAa,GACxB,MAAM,aAAa,CAAC,aAAa,CAAC,EAClC,UAAU;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,KACpC,MA+BF,CAAA;AAED,eAAO,MAAM,cAAc,GACzB,OAAO,aAAa,CAAC,cAAc,CAAC,EACpC,UAAU;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,KACpC,MAyBF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,iGAwBtB,CAAA;AA0NF,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IACrC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;CAC3C;AAED,sFAAsF;AACtF,eAAO,MAAM,gBAAgB,GAC3B,OAAO,UAAU,EACjB,MAAK,MAAsB,KAC1B,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,eAAe,CA2B1C,CAAA;AA4GJ,eAAO,MAAM,YAAY,k5CAwBxB,CAAA;AAED,eAAO,MAAM,eAAe,GAC1B,MAAM,aAAa,CAAC,MAAM,CAAC,KAC1B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,CACe,CAAA"}
package/dist/Cli.js CHANGED
@@ -13,6 +13,9 @@ import * as Flag from "effect/unstable/cli/Flag";
13
13
  import { makeCliProgram } from "@llm4ts/runner/Cli";
14
14
  import { CostsResult, makeCostsProgram, renderCostsResult } from "@llm4ts/runner/Costs";
15
15
  import { makeDoctorProgram } from "@llm4ts/runner/Doctor";
16
+ import { pauseExecutor, renderRosterReport, resumeExecutor, rosterReport } from "@llm4ts/runner/ExecutorRoster";
17
+ import { nodePlainFileStore } from "@llm4ts/runner/NodePlainFileStore";
18
+ import { describeExclusion } from "@llm4ts/flow/Roster";
16
19
  import { builtinKitsDir, discoverKits, kitTierPaths } from "@llm4ts/runner/Kits";
17
20
  import { defaultTierPaths, discoverFlows } from "./FlowCatalog.js";
18
21
  import { launchFlow } from "./FlowLaunch.js";
@@ -126,7 +129,9 @@ const runCommand = Command.make("run", {
126
129
  task: Argument.String("task").pipe(Argument.variadic(), Argument.withDescription("Task text passed to the flow")),
127
130
  repo: Flag.String("repo").pipe(Flag.optional, Flag.withDescription("Repository to run against, forwarded to the flow as --repo (defaults to the current directory)")),
128
131
  pack: Flag.String("pack").pipe(Flag.optional, Flag.withDescription("Pack for the modernization flows, forwarded as LLM4TS_PACK: a kit pack name from `llm4ts kits`, kit/pack, or a directory holding pack.md")),
129
- verbose: Flag.Boolean("verbose").pipe(Flag.withDefault(false), Flag.withDescription("Stream verbose flow output"))
132
+ verbose: Flag.Boolean("verbose").pipe(Flag.withDefault(false), Flag.withDescription("Stream verbose flow output")),
133
+ roster: Flag.String("roster").pipe(Flag.optional, Flag.withDescription("Executor roster for this run, forwarded as LLM4TS_ROSTER: a roster file, or `none` for one executor per seat")),
134
+ executors: Flag.String("executors").pipe(Flag.optional, Flag.withDescription("Only these roster executors (comma-separated ids), forwarded as LLM4TS_EXECUTORS"))
130
135
  }, (config) => Effect.gen(function* () {
131
136
  const tiers = shellTierPaths();
132
137
  const flowPath = yield* resolveFlow(config.flow, tiers);
@@ -134,6 +139,12 @@ const runCommand = Command.make("run", {
134
139
  if (config.verbose) {
135
140
  environment.LLM4TS_VERBOSITY = "verbose";
136
141
  }
142
+ if (config.roster._tag === "Some") {
143
+ environment.LLM4TS_ROSTER = config.roster.value;
144
+ }
145
+ if (config.executors._tag === "Some") {
146
+ environment.LLM4TS_EXECUTORS = config.executors.value;
147
+ }
137
148
  if (config.pack._tag === "Some") {
138
149
  environment.LLM4TS_PACK = config.pack.value;
139
150
  }
@@ -265,6 +276,31 @@ const costsCommand = Command.make("costs", {
265
276
  ? Schema.encodeSync(Schema.fromJsonString(CostsResult))(result)
266
277
  : renderCostsResult(result));
267
278
  })).pipe(Command.withDescription("Token and cost usage across past runs, bucketed per day and hour for budgeting"));
279
+ const rosterSource = (repo) => ({
280
+ files: nodePlainFileStore,
281
+ environment: process.env,
282
+ workDir: resolve(Option.getOrElse(repo, () => process.cwd()))
283
+ });
284
+ const rosterRepo = Flag.String("repo").pipe(Flag.optional, Flag.withDescription("Repository whose .llm4ts/roster.json overrides the user roster"));
285
+ const rosterPauseCommand = Command.make("pause", {
286
+ id: Argument.String("executor").pipe(Argument.withDescription("Executor id")),
287
+ for: Flag.String("for").pipe(Flag.optional, Flag.withDescription('How long ("2h", "30 minutes"); until resumed when omitted')),
288
+ repo: rosterRepo
289
+ }, (config) => Effect.gen(function* () {
290
+ const exclusion = yield* pauseExecutor(rosterSource(config.repo), config.id, Option.getOrUndefined(config.for));
291
+ yield* Console.log(`${config.id} out ${describeExclusion(exclusion)}`);
292
+ })).pipe(Command.withDescription("Take an executor out of every run's pick-up round"));
293
+ const rosterResumeCommand = Command.make("resume", {
294
+ id: Argument.String("executor").pipe(Argument.withDescription("Executor id")),
295
+ repo: rosterRepo
296
+ }, (config) => Effect.gen(function* () {
297
+ yield* resumeExecutor(rosterSource(config.repo), config.id);
298
+ yield* Console.log(`${config.id} back in the round`);
299
+ })).pipe(Command.withDescription("Put an executor back in the pick-up round"));
300
+ const rosterCommand = Command.make("roster", { repo: rosterRepo }, (config) => Effect.gen(function* () {
301
+ const report = yield* rosterReport(rosterSource(config.repo));
302
+ yield* Console.log(renderRosterReport(report));
303
+ })).pipe(Command.withDescription("The executor roster (ADR 0019): executors, their roles and slots, and who is out of the round"), Command.withSubcommands([rosterPauseCommand, rosterResumeCommand]));
268
304
  const doctorCommand = Command.make("doctor", {}, () => Effect.gen(function* () {
269
305
  const report = yield* makeDoctorProgram();
270
306
  yield* Console.log(report.trimEnd());
@@ -284,6 +320,7 @@ export const shellCommand = Command.make("llm4ts", {}, () => Effect.gen(function
284
320
  askCommand,
285
321
  refineCommand,
286
322
  costsCommand,
323
+ rosterCommand,
287
324
  doctorCommand
288
325
  ]));
289
326
  export const runShellCommand = (argv) => Command.runWith(shellCommand, { version: packageVersion })(argv);
package/dist/Cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Cli.js","sourceRoot":"","sources":["../src/Cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Cli.js","sourceRoot":"","sources":["../src/Cli.ts"],"names":[],"mappings":"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"}
@@ -71,8 +71,9 @@ const program = Effect.gen(function* () {
71
71
  if (flags.planOnly) {
72
72
  return;
73
73
  }
74
- const concurrency = flags.concurrency ?? 3;
75
- if (localServer !== undefined && concurrency > 1) {
74
+ // With a roster, the default is every coder slot it has; the flag caps it.
75
+ const concurrency = flags.concurrency ?? context.roster?.slots("coder") ?? 3;
76
+ if (context.roster === undefined && localServer !== undefined && concurrency > 1) {
76
77
  yield* events.publish(Info.make({
77
78
  message: `⚠ the coder is served by a local single-model server (${localServer}): it generates one ` +
78
79
  `reply at a time, so ${concurrency} parallel coders queue behind each other and a queued ` +
@@ -95,8 +96,8 @@ const program = Effect.gen(function* () {
95
96
  stateDir,
96
97
  worktreeRoot: worktreeRootFor(input.workDir, plan.epicId, process.env),
97
98
  board: makeLocalBoardSync(files, stateDir, `Epic: ${plan.epicId}`),
98
- contextFor: (workDir) => Effect.gen(function* () {
99
- const rebound = yield* contextFor(workDir);
99
+ contextFor: (workDir, contextOptions) => Effect.gen(function* () {
100
+ const rebound = yield* contextFor(workDir, contextOptions);
100
101
  const coderMeter = yield* makeEstimatedUsageMeter(rebound.coder, estimateOptions);
101
102
  const reviewMeter = yield* makeEstimatedUsageMeter(rebound.reasoning, estimateOptions);
102
103
  const seats = {
@@ -113,16 +114,22 @@ const program = Effect.gen(function* () {
113
114
  ? {}
114
115
  : { setup: setupIn(nodeProcessExecutor, events, setupCommand) }),
115
116
  gates,
116
- judge: (story, diff) => judgeStory(reasoningMeter.service, story, diff, contextBudget),
117
- verifyBlocked: verifyBlockedOn(reasoningMeter.service, events, files, plan),
118
- awaitRecovery: awaitServer(healthUrl === undefined ? undefined : httpProbe(healthUrl), events),
117
+ // With a roster, the judge and the verifier are leased per story,
118
+ // away from the executor coding it (ADR 0019).
119
+ judge: (story, diff, seats) => judgeStory(seats.context.roster?.forRole("judge") ?? reasoningMeter.service, story, diff, contextBudget),
120
+ verifyBlocked: (story, need, workDir, seats) => verifyBlockedOn(seats.context.roster?.forRole("verifier") ?? reasoningMeter.service, events, files, plan)(story, need, workDir),
121
+ // A roster waits for its own executors (the story's next lease
122
+ // does); without one, poll the single coder's engine.
123
+ awaitRecovery: context.roster === undefined
124
+ ? awaitServer(healthUrl === undefined ? undefined : httpProbe(healthUrl), events)
125
+ : () => Effect.void,
119
126
  system: (story) => Effect.succeed([
120
127
  "House rules of the target repository (CONTRIBUTING.md):",
121
128
  guidance,
122
129
  "",
123
130
  `Imitate the exemplar feature before inventing anything. Story id: ${story.id}.`
124
131
  ].join("\n")),
125
- ...(flags.concurrency === undefined ? {} : { concurrency: flags.concurrency }),
132
+ concurrency,
126
133
  failFast: flags.failFast
127
134
  });
128
135
  yield* events.publish(Info.make({
@@ -178,8 +178,8 @@ export const serverHealthUrl = (server, environment) => {
178
178
  return undefined;
179
179
  }
180
180
  };
181
- /** Whether `url` answers 2xx within five seconds. */
182
- export const httpProbe = (url) => Effect.tryPromise(() => fetch(url, { signal: AbortSignal.timeout(5_000) })).pipe(Effect.map((response) => response.ok), Effect.catch(() => Effect.succeed(false)));
181
+ /** Whether `url` answers 2xx within five seconds (the roster's health check). */
182
+ export { httpProbe } from "@llm4ts/runner/ExecutorRoster";
183
183
  export const defaultRecoveryTiming = {
184
184
  interval: "15 seconds",
185
185
  attempts: 60,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@llm4ts/shell",
3
- "version": "2.8.0",
3
+ "version": "2.9.1",
4
4
  "description": "Interactive shell and CLI for llm4ts: flow discovery, run-a-flow, and view",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -52,9 +52,9 @@
52
52
  "dependencies": {
53
53
  "@effect/platform-node": "4.0.0-rc.115",
54
54
  "@effect/platform-node-shared": "4.0.0-rc.115",
55
- "@llm4ts/core": "2.8.0",
56
- "@llm4ts/flow": "2.8.0",
57
- "@llm4ts/runner": "2.8.0"
55
+ "@llm4ts/core": "2.9.1",
56
+ "@llm4ts/runner": "2.9.1",
57
+ "@llm4ts/flow": "2.9.1"
58
58
  },
59
59
  "peerDependencies": {
60
60
  "effect": "4.0.0-rc.115"
package/src/Cli.ts CHANGED
@@ -18,6 +18,14 @@ import {
18
18
  type CostsOptions
19
19
  } from "@llm4ts/runner/Costs"
20
20
  import { makeDoctorProgram } from "@llm4ts/runner/Doctor"
21
+ import {
22
+ pauseExecutor,
23
+ renderRosterReport,
24
+ resumeExecutor,
25
+ rosterReport
26
+ } from "@llm4ts/runner/ExecutorRoster"
27
+ import { nodePlainFileStore } from "@llm4ts/runner/NodePlainFileStore"
28
+ import { describeExclusion } from "@llm4ts/flow/Roster"
21
29
  import { builtinKitsDir, discoverKits, kitTierPaths, type DiscoveredKit } from "@llm4ts/runner/Kits"
22
30
  import {
23
31
  defaultTierPaths,
@@ -186,6 +194,18 @@ const runCommand = Command.make(
186
194
  verbose: Flag.Boolean("verbose").pipe(
187
195
  Flag.withDefault(false),
188
196
  Flag.withDescription("Stream verbose flow output")
197
+ ),
198
+ roster: Flag.String("roster").pipe(
199
+ Flag.optional,
200
+ Flag.withDescription(
201
+ "Executor roster for this run, forwarded as LLM4TS_ROSTER: a roster file, or `none` for one executor per seat"
202
+ )
203
+ ),
204
+ executors: Flag.String("executors").pipe(
205
+ Flag.optional,
206
+ Flag.withDescription(
207
+ "Only these roster executors (comma-separated ids), forwarded as LLM4TS_EXECUTORS"
208
+ )
189
209
  )
190
210
  },
191
211
  (config) =>
@@ -196,6 +216,12 @@ const runCommand = Command.make(
196
216
  if (config.verbose) {
197
217
  environment.LLM4TS_VERBOSITY = "verbose"
198
218
  }
219
+ if (config.roster._tag === "Some") {
220
+ environment.LLM4TS_ROSTER = config.roster.value
221
+ }
222
+ if (config.executors._tag === "Some") {
223
+ environment.LLM4TS_EXECUTORS = config.executors.value
224
+ }
199
225
  if (config.pack._tag === "Some") {
200
226
  environment.LLM4TS_PACK = config.pack.value
201
227
  }
@@ -441,6 +467,63 @@ const costsCommand = Command.make(
441
467
  )
442
468
  )
443
469
 
470
+ const rosterSource = (repo: Option.Option<string>) => ({
471
+ files: nodePlainFileStore,
472
+ environment: process.env,
473
+ workDir: resolve(Option.getOrElse(repo, () => process.cwd()))
474
+ })
475
+
476
+ const rosterRepo = Flag.String("repo").pipe(
477
+ Flag.optional,
478
+ Flag.withDescription("Repository whose .llm4ts/roster.json overrides the user roster")
479
+ )
480
+
481
+ const rosterPauseCommand = Command.make(
482
+ "pause",
483
+ {
484
+ id: Argument.String("executor").pipe(Argument.withDescription("Executor id")),
485
+ for: Flag.String("for").pipe(
486
+ Flag.optional,
487
+ Flag.withDescription('How long ("2h", "30 minutes"); until resumed when omitted')
488
+ ),
489
+ repo: rosterRepo
490
+ },
491
+ (config) =>
492
+ Effect.gen(function* () {
493
+ const exclusion = yield* pauseExecutor(
494
+ rosterSource(config.repo),
495
+ config.id,
496
+ Option.getOrUndefined(config.for)
497
+ )
498
+ yield* Console.log(`${config.id} out ${describeExclusion(exclusion)}`)
499
+ })
500
+ ).pipe(Command.withDescription("Take an executor out of every run's pick-up round"))
501
+
502
+ const rosterResumeCommand = Command.make(
503
+ "resume",
504
+ {
505
+ id: Argument.String("executor").pipe(Argument.withDescription("Executor id")),
506
+ repo: rosterRepo
507
+ },
508
+ (config) =>
509
+ Effect.gen(function* () {
510
+ yield* resumeExecutor(rosterSource(config.repo), config.id)
511
+ yield* Console.log(`${config.id} back in the round`)
512
+ })
513
+ ).pipe(Command.withDescription("Put an executor back in the pick-up round"))
514
+
515
+ const rosterCommand = Command.make("roster", { repo: rosterRepo }, (config) =>
516
+ Effect.gen(function* () {
517
+ const report = yield* rosterReport(rosterSource(config.repo))
518
+ yield* Console.log(renderRosterReport(report))
519
+ })
520
+ ).pipe(
521
+ Command.withDescription(
522
+ "The executor roster (ADR 0019): executors, their roles and slots, and who is out of the round"
523
+ ),
524
+ Command.withSubcommands([rosterPauseCommand, rosterResumeCommand])
525
+ )
526
+
444
527
  const doctorCommand = Command.make("doctor", {}, () =>
445
528
  Effect.gen(function* () {
446
529
  const report = yield* makeDoctorProgram()
@@ -469,6 +552,7 @@ export const shellCommand = Command.make("llm4ts", {}, () =>
469
552
  askCommand,
470
553
  refineCommand,
471
554
  costsCommand,
555
+ rosterCommand,
472
556
  doctorCommand
473
557
  ])
474
558
  )