@llm4ts/flow 2.35.3 → 2.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/Roster.js CHANGED
@@ -11,6 +11,7 @@ import * as Effect from "effect/Effect";
11
11
  import * as Ref from "effect/Ref";
12
12
  import * as Schema from "effect/Schema";
13
13
  import * as Semaphore from "effect/Semaphore";
14
+ import { Effort } from "@llm4ts/core/Models";
14
15
  import { RosterExhausted } from "./FlowError.js";
15
16
  import { Began, ExecutorExcluded, ExecutorLeased, ExecutorReleased, ExecutorResumed, Info, Timed } from "./FlowEvents.js";
16
17
  import { loadVersioned, saveVersioned } from "./Persistence.js";
@@ -48,7 +49,14 @@ export class ExecutorSpec extends Schema.Class("ExecutorSpec")({
48
49
  /** In a repository roster: removes the user roster's entry with this id. */
49
50
  disabled: Schema.optionalKey(Schema.Boolean),
50
51
  /** The autonomy contract profile this executor's coder prompts carry (ADR 0027); default `full`. */
51
- contract: Schema.optionalKey(Schema.Literals(["full", "minimal", "off"]))
52
+ contract: Schema.optionalKey(Schema.Literals(["full", "minimal", "off"])),
53
+ /**
54
+ * Reasoning effort (ADR 0029): one for every role, or per role with a
55
+ * `default`, mapped to the harness's own flag; absent keeps its default.
56
+ */
57
+ effort: Schema.optionalKey(Schema.Union([Effort, Schema.Record(Schema.String, Effort)])),
58
+ /** Run the harness without the repository's own hooks, MCP servers, settings and instructions (ADR 0029). */
59
+ isolated: Schema.optionalKey(Schema.Boolean)
52
60
  }) {
53
61
  }
54
62
  export class RosterDocument extends Schema.Class("RosterDocument")({
@@ -89,6 +97,14 @@ export const coderSlotsOf = (spec) => {
89
97
  const reasons = rolesOf(spec).some((role) => reasoningRoles.includes(role));
90
98
  return hasRole(spec, "coder") && reasons && slots > 1 ? slots - 1 : slots;
91
99
  };
100
+ /** The effort a role runs at on this executor (ADR 0029); absent is the harness's default. */
101
+ export const effortOf = (spec, role) => {
102
+ const effort = spec.effort;
103
+ if (effort === undefined || typeof effort === "string") {
104
+ return effort;
105
+ }
106
+ return effort[role] ?? effort.default;
107
+ };
92
108
  export const priorityOf = (spec, role) => {
93
109
  const priority = spec.priority;
94
110
  if (priority === undefined) {
@@ -165,6 +181,12 @@ export const rosterViolations = (document) => {
165
181
  violations.push(`${where} has an unreadable ${name} cooldown '${text}'`);
166
182
  }
167
183
  }
184
+ if (spec.effort !== undefined && typeof spec.effort !== "string") {
185
+ const unknown = Object.keys(spec.effort).filter((key) => key !== "default" && !isRole(key));
186
+ if (unknown.length > 0) {
187
+ violations.push(`${where} sets effort for unknown role(s) ${unknown.join(", ")} (roles: ${roles.join(", ")}, or default)`);
188
+ }
189
+ }
168
190
  }
169
191
  return violations;
170
192
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Roster.js","sourceRoot":"","sources":["../src/Roster.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Roster.js","sourceRoot":"","sources":["../src/Roster.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,16 @@ import type { PlainFileStoreShape } from "./Persistence.ts";
6
6
  export interface QueueItem {
7
7
  readonly id: string;
8
8
  }
9
+ /**
10
+ * One checkout the queue may work in (ADR 0028, decided later): a git
11
+ * worktree of its own, so units that build or edit shared files do not
12
+ * trip over each other. The flow creates, merges and removes shards; the
13
+ * queue only hands each in-flight item one and never two items the same.
14
+ */
15
+ export interface Shard {
16
+ readonly id: string;
17
+ readonly dir: string;
18
+ }
9
19
  export declare const Confidence: Schema.Literals<readonly ["high", "medium", "low"]>;
10
20
  declare const QueueOutcome_base: Schema.Class<QueueOutcome, Schema.Struct<{
11
21
  readonly id: Schema.String;
@@ -29,12 +39,18 @@ export interface WorkResult {
29
39
  export interface RunQueueOptions<Item extends QueueItem> {
30
40
  readonly label: string;
31
41
  readonly items: ReadonlyArray<Item>;
32
- /** The filesystem predicate: an item whose output exists is done, whatever the ledger says. */
33
- readonly done: (item: Item) => Effect.Effect<boolean, FlowError>;
42
+ /**
43
+ * The filesystem predicate: an item whose output exists is done, whatever
44
+ * the ledger says. Right after `work` it is asked with the shard the work
45
+ * ran in, before the first round without one.
46
+ */
47
+ readonly done: (item: Item, shard?: Shard) => Effect.Effect<boolean, FlowError>;
34
48
  /** One unit of work: implement, review, fix; the queue catches its failure. */
35
- readonly work: (item: Item, round: number) => Effect.Effect<WorkResult, FlowError>;
49
+ readonly work: (item: Item, round: number, shard?: Shard) => Effect.Effect<WorkResult, FlowError>;
36
50
  readonly events: FlowEventsShape;
37
51
  readonly concurrency?: number;
52
+ /** Checkouts to spread the work over; at most one in-flight item per shard, so they also cap concurrency. */
53
+ readonly shards?: ReadonlyArray<Shard>;
38
54
  /** Rounds over the items that failed; default 3. */
39
55
  readonly maxRounds?: number;
40
56
  /** Where outcomes are appended, one JSON line each; omit to keep none. */
@@ -1 +1 @@
1
- {"version":3,"file":"WorkQueue.d.ts","sourceRoot":"","sources":["../src/WorkQueue.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC3E,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAE3D,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CACpB;AAED,eAAO,MAAM,UAAU,qDAA6C,CAAA;;;;;;;;;;;AAEpE,sEAAsE;AACtE,qBAAa,YAAa,SAAQ,iBAShC;CAAG;AAKL,8DAA8D;AAC9D,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAA;IAC/C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,eAAe,CAAC,IAAI,SAAS,SAAS;IACrD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;IACnC,+FAA+F;IAC/F,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IAChE,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;IAClF,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,oDAAoD;IACpD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IAChF,qEAAqE;IACrE,QAAQ,CAAC,UAAU,CAAC,EAAE,CACpB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,EACzB,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,KACxB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;CACpC;AAED,MAAM,WAAW,WAAW,CAAC,IAAI,SAAS,SAAS;IACjD,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,CAAA;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,mDAAmD;IACnD,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;IACrC,sEAAsE;IACtE,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;CACtC;AAED,eAAO,MAAM,UAAU,GACrB,OAAO,mBAAmB,EAC1B,MAAM,MAAM,KACX,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,SAAS,CASpD,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,QAAQ,GAAsD,IAAI,SAAS,SAAS,s0CAmG/F,CAAA"}
1
+ {"version":3,"file":"WorkQueue.d.ts","sourceRoot":"","sources":["../src/WorkQueue.ts"],"names":[],"mappings":"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"}
package/dist/WorkQueue.js CHANGED
@@ -5,6 +5,7 @@
5
5
  // feature with a DAG and a judge, a queue item is a file with a predicate.
6
6
  import * as Clock from "effect/Clock";
7
7
  import * as Effect from "effect/Effect";
8
+ import * as Ref from "effect/Ref";
8
9
  import * as Schema from "effect/Schema";
9
10
  import { Stalled, describeFlowError } from "./FlowError.js";
10
11
  import { Info, StageCompleted, StageFailed, StageStarted } from "./FlowEvents.js";
@@ -35,8 +36,13 @@ export const readLedger = (files, path) => Effect.map(files.read(path), (text) =
35
36
  * done, the rounds run out, or a round makes no progress (typed `Stalled`).
36
37
  */
37
38
  export const runQueue = Effect.fn("@llm4ts/flow/WorkQueue.run")(function* (options) {
38
- const concurrency = Math.max(1, options.concurrency ?? 4);
39
+ const shards = options.shards ?? [];
40
+ const concurrency = Math.max(1, Math.min(options.concurrency ?? 4, shards.length === 0 ? Number.POSITIVE_INFINITY : shards.length));
39
41
  const maxRounds = Math.max(1, options.maxRounds ?? 3);
42
+ // The free shards: an item takes one before its work and returns it after.
43
+ const free = yield* Ref.make(shards);
44
+ const takeShard = Ref.modify(free, (list) => list.length === 0 ? [undefined, list] : [list[0], list.slice(1)]);
45
+ const giveShard = (shard) => shard === undefined ? Effect.void : Ref.update(free, (list) => [...list, shard]);
40
46
  const outcomes = [];
41
47
  const record = (outcome) => Effect.gen(function* () {
42
48
  outcomes.push(outcome);
@@ -68,10 +74,12 @@ export const runQueue = Effect.fn("@llm4ts/flow/WorkQueue.run")(function* (optio
68
74
  const stage = `${options.label} ${item.id}`;
69
75
  yield* options.events.publish(StageStarted.make({ stage, lane: item.id }));
70
76
  const started = yield* Clock.currentTimeMillis;
71
- const result = yield* options.work(item, round).pipe(Effect.map((value) => ({ ok: true, value })), Effect.catch((error) => Effect.succeed({ ok: false, error: describeFlowError(error) })));
77
+ const shard = yield* takeShard;
78
+ const result = yield* options.work(item, round, shard).pipe(Effect.map((value) => ({ ok: true, value })), Effect.catch((error) => Effect.succeed({ ok: false, error: describeFlowError(error) })));
72
79
  const ended = yield* Clock.currentTimeMillis;
73
80
  // The predicate decides, not the work's own account of itself.
74
- const finished = result.ok && (yield* options.done(item));
81
+ const finished = result.ok && (yield* options.done(item, shard));
82
+ yield* giveShard(shard);
75
83
  const outcome = QueueOutcome.make({
76
84
  id: item.id,
77
85
  round,
@@ -1 +1 @@
1
- {"version":3,"file":"WorkQueue.js","sourceRoot":"","sources":["../src/WorkQueue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkQueue.js","sourceRoot":"","sources":["../src/WorkQueue.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@llm4ts/flow",
3
- "version": "2.35.3",
3
+ "version": "2.36.0",
4
4
  "description": "Effect-native LLM workflow, persistence, review, and repository automation",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -122,7 +122,7 @@
122
122
  "typescript"
123
123
  ],
124
124
  "dependencies": {
125
- "@llm4ts/core": "2.35.3"
125
+ "@llm4ts/core": "2.36.0"
126
126
  },
127
127
  "peerDependencies": {
128
128
  "effect": "4.0.0"
@@ -11,6 +11,12 @@ const scope = [
11
11
  "it, never narrowing it quietly, widening it, or swapping it for a neighbouring task."
12
12
  ]
13
13
 
14
+ const workspace = [
15
+ "Your working directory is the whole of your world. The tool that runs you is not part of the",
16
+ "task: do not look for its installation, source code, processes or environment, and read its",
17
+ "files only where your instructions name them. What it expects of you is in your instructions."
18
+ ]
19
+
14
20
  const noGaming = [
15
21
  "Never edit, skip, delete or weaken a test to make a gate pass. A test you believe is wrong is a",
16
22
  "finding to report, not a line to change; a pre-existing bug outside your task is a finding, not",
@@ -34,8 +40,9 @@ const evidence = [
34
40
  ]
35
41
 
36
42
  /**
37
- * The contract for a profile. `full` is the default; `minimal` keeps scope
38
- * and the no-gaming rule for a model that over-verifies under the full text;
43
+ * The contract for a profile. `full` is the default; `minimal` keeps scope,
44
+ * the workspace rule and the no-gaming rule for a model that over-verifies
45
+ * under the full text;
39
46
  * `off` is the empty string, for a flow that writes its own rules.
40
47
  */
41
48
  export const autonomyContract = (profile: ContractProfile = "full"): string => {
@@ -43,9 +50,16 @@ export const autonomyContract = (profile: ContractProfile = "full"): string => {
43
50
  case "off":
44
51
  return ""
45
52
  case "minimal":
46
- return [...scope, ...noGaming].join("\n")
53
+ return [...scope, ...workspace, ...noGaming].join("\n")
47
54
  case "full":
48
- return [...unattended, ...scope, ...minimalChange, ...noGaming, ...evidence].join("\n")
55
+ return [
56
+ ...unattended,
57
+ ...scope,
58
+ ...workspace,
59
+ ...minimalChange,
60
+ ...noGaming,
61
+ ...evidence
62
+ ].join("\n")
49
63
  }
50
64
  }
51
65
 
package/src/CostReport.ts CHANGED
@@ -57,6 +57,14 @@ export class ModelUsage extends Schema.Class<ModelUsage>("ModelUsage")({
57
57
  totals: UsageTotals
58
58
  }) {}
59
59
 
60
+ /** Spend by the seat's label (coder, planner, reviewer, judge, judgment, chat): what each role cost (ADR 0029). */
61
+ export class AgentUsage extends Schema.Class<AgentUsage>("AgentUsage")({
62
+ agent: Schema.String,
63
+ totals: UsageTotals,
64
+ /** Share of all tokens, measured and estimated together. */
65
+ share: Schema.Number
66
+ }) {}
67
+
60
68
  export class UsageAverages extends Schema.Class<UsageAverages>("UsageAverages")({
61
69
  activeDays: Schema.Int,
62
70
  calendarDays: Schema.Int,
@@ -93,10 +101,11 @@ export class CostReport extends Schema.Class<CostReport>("CostReport")({
93
101
  projection: Schema.optionalKey(UsageProjection),
94
102
  byDay: Schema.Array(UsageBucket),
95
103
  byHour: Schema.Array(UsageBucket),
96
- byModel: Schema.Array(ModelUsage)
104
+ byModel: Schema.Array(ModelUsage),
105
+ byAgent: Schema.Array(AgentUsage)
97
106
  }) {}
98
107
 
99
- export const CurrentCostReportSchema = 1
108
+ export const CurrentCostReportSchema = 2
100
109
 
101
110
  const tokensUsedCodec = Schema.fromJsonString(TokensUsed)
102
111
  const decodeTokensUsed = Schema.decodeUnknownOption(tokensUsedCodec)
@@ -293,6 +302,24 @@ export const buildCostReport = (
293
302
  : -1
294
303
  )
295
304
 
305
+ const byAgentGroups = new Map<string, Array<UsageSample>>()
306
+ for (const sample of ordered) {
307
+ byAgentGroups.set(sample.agent, [...(byAgentGroups.get(sample.agent) ?? []), sample])
308
+ }
309
+ const byAgent = [...byAgentGroups.entries()]
310
+ .map(([agent, members]) => {
311
+ const agentTotals = totalsOf(members)
312
+ return AgentUsage.make({
313
+ agent,
314
+ totals: agentTotals,
315
+ share: tokens === 0 ? 0 : agentTotals.total / tokens
316
+ })
317
+ })
318
+ .sort(
319
+ (left, right) =>
320
+ right.totals.total - left.totals.total || left.agent.localeCompare(right.agent)
321
+ )
322
+
296
323
  return CostReport.make({
297
324
  schemaVersion: CurrentCostReportSchema,
298
325
  timeZone: zoneLabel(timeZone),
@@ -321,7 +348,8 @@ export const buildCostReport = (
321
348
  ...(projection === undefined ? {} : { projection }),
322
349
  byDay,
323
350
  byHour,
324
- byModel
351
+ byModel,
352
+ byAgent
325
353
  })
326
354
  }
327
355
 
@@ -389,6 +417,16 @@ export const renderCostReport = (report: CostReport): string => {
389
417
  ` ${entry.model} ${thousands(entry.totals.total)} tokens${money(entry.totals.costUsd)}`
390
418
  )
391
419
  )
420
+ if (report.byAgent.length > 0) {
421
+ sections.push(
422
+ "",
423
+ "by role (the seat's label):",
424
+ ...report.byAgent.map(
425
+ (entry) =>
426
+ ` ${entry.agent} ${thousands(entry.totals.total)} tokens (${Math.round(entry.share * 100)}%)${money(entry.totals.costUsd)}`
427
+ )
428
+ )
429
+ }
392
430
  const notes = [
393
431
  `costs are backend-reported where available, otherwise estimated from the pricing table (rates as of ${report.pricesAsOf} — may be stale)`,
394
432
  ...(report.estimated.requests === 0
@@ -12,11 +12,25 @@ export class Diagnostic extends Schema.Class<Diagnostic>("Diagnostic")({
12
12
  unit: Schema.optionalKey(Schema.String)
13
13
  }) {}
14
14
 
15
- export const DiagnosticsFormat = Schema.Literals(["json", "cargo", "tsc"])
15
+ export const DiagnosticsFormat = Schema.Literals(["json", "cargo", "tsc", "javac"])
16
16
  export type DiagnosticsFormat = typeof DiagnosticsFormat.Type
17
17
 
18
+ export const diagnosticsFormatOf = (value: string | undefined): DiagnosticsFormat => {
19
+ const lower = value?.trim().toLowerCase()
20
+ return lower === "cargo" || lower === "tsc" || lower === "javac" ? lower : "json"
21
+ }
22
+
18
23
  const decodeJsonLine = Schema.decodeUnknownOption(Schema.fromJsonString(Diagnostic))
19
24
  const tscLine = /^(.+?)\((\d+),\d+\): error (TS\d+: .+)$/u
25
+ // `javac`: `path/File.java:12: error: message`; Maven: `[ERROR] /path/File.java:[12,5] message`.
26
+ const javacLine = /^(.+\.java):(\d+): error: (.+)$/u
27
+ const mavenLine = /^\[ERROR\] (.+\.java):\[(\d+),\d+\] (.+)$/u
28
+
29
+ /** The Maven module a Java file belongs to (the path before `/src/`), else its folder. */
30
+ const javaUnitOf = (file: string): string => {
31
+ const at = file.indexOf("/src/")
32
+ return at > 0 ? file.slice(0, at) : dirname(file)
33
+ }
20
34
 
21
35
  const CargoMessage = Schema.fromJsonString(
22
36
  Schema.Struct({
@@ -44,14 +58,31 @@ const decodeCargo = Schema.decodeUnknownOption(CargoMessage)
44
58
  /**
45
59
  * `json`: one `{file, line?, message, unit?}` object per line. `cargo`:
46
60
  * `cargo check --message-format=json`, errors only, the crate as the unit.
47
- * `tsc`: `tsc --pretty false`, the file's top folders as the unit. Lines
48
- * that do not parse are skipped: a build prints more than diagnostics.
61
+ * `tsc`: `tsc --pretty false`, the file's top folders as the unit. `javac`:
62
+ * javac's or Maven's error lines, the Maven module as the unit. Lines that
63
+ * do not parse are skipped: a build prints more than diagnostics.
49
64
  */
50
65
  export const parseDiagnostics = (
51
66
  text: string,
52
67
  format: DiagnosticsFormat = "json"
53
68
  ): ReadonlyArray<Diagnostic> => {
54
69
  const out: Array<Diagnostic> = []
70
+ if (format === "javac") {
71
+ for (const raw of text.split("\n")) {
72
+ const line = raw.trim()
73
+ const match = javacLine.exec(line) ?? mavenLine.exec(line)
74
+ if (match?.[1] === undefined || match[3] === undefined) continue
75
+ out.push(
76
+ Diagnostic.make({
77
+ file: match[1],
78
+ line: Number.parseInt(match[2] ?? "0", 10),
79
+ message: match[3],
80
+ unit: javaUnitOf(match[1])
81
+ })
82
+ )
83
+ }
84
+ return out
85
+ }
55
86
  if (format === "tsc") {
56
87
  // `tsc --pretty false`: `path(line,col): error TS1234: message`; the unit is the top folder.
57
88
  for (const raw of text.split("\n")) {
package/src/Pack.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { diagnosticsFormatOf, type DiagnosticsFormat } from "./Diagnostics.ts"
1
2
  import * as Effect from "effect/Effect"
2
3
  import * as Schema from "effect/Schema"
3
4
  import { Dimension } from "@llm4ts/core/eval/Eval"
@@ -88,8 +89,8 @@ export interface Pack {
88
89
  readonly comment: string | undefined
89
90
  /**
90
91
  * `## Diagnostics` (ADR 0028): `- command: …` prints what is red after a
91
- * build, `- format: json | cargo` says how to read it. Present only in a
92
- * porting pack.
92
+ * build, `- format: json | cargo | tsc | javac` says how to read it.
93
+ * Present only in a porting pack.
93
94
  */
94
95
  /**
95
96
  * `## Ledger` (ADR 0028): what `port-ledger` classifies. `- unit: <regex>`
@@ -115,7 +116,7 @@ export interface Pack {
115
116
  /** `## Audit` (ADR 0028): `- dimensions: a, b, c` the rulebook auditors take; default list in the flow. */
116
117
  readonly audit: ReadonlyArray<string> | undefined
117
118
  readonly diagnostics:
118
- | { readonly command: ReadonlyArray<string>; readonly format: "json" | "cargo" | "tsc" }
119
+ | { readonly command: ReadonlyArray<string>; readonly format: DiagnosticsFormat }
119
120
  | undefined
120
121
  readonly dir: string
121
122
  readonly gate: (name: string) => ReadonlyArray<string> | undefined
@@ -349,12 +350,7 @@ export const loadPack = Effect.fn("@llm4ts/flow/Pack.load")(function* (
349
350
  ? undefined
350
351
  : {
351
352
  command: diagnosticsValues.command.split(/\s+/),
352
- format:
353
- diagnosticsValues.format?.toLowerCase() === "cargo"
354
- ? ("cargo" as const)
355
- : diagnosticsValues.format?.toLowerCase() === "tsc"
356
- ? ("tsc" as const)
357
- : ("json" as const)
353
+ format: diagnosticsFormatOf(diagnosticsValues.format)
358
354
  }
359
355
  const ledgerValues = namedItems(section(manifest.sections, "Ledger"))
360
356
  const ledger =